linux下libcurl库编译和使用

参考
一、libcurl简介
libcurl作为一个多协议的便于客户端使用的URL传输库,基于C语言,提供C语言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP这些协议,同时支持使用SSL证书的安全文件传输:HTTP POST, HTTP PUT, FTP 上传, 基于HTTP形式的上传、代理、Cookies、用户加密码的认证等多种应用场景。另外,libcurl是一个高移植性的库,能在绝大多数系统上运行,包括Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS等。
二、编译安装
1、下载源码
地址:
wget https://curl.se/download/curl-7.87.0.zip
unzip curl-7.87.0.zip
cd curl-7.87.0
2、配置环境
./configure --prefix=/usr/local/libcurl/7.87.0 --with-openssl
3、编译
make -j4
4、安装
make install
root@sony-HP-Notebook:/usr/local/libcurl/7.87.0# ls
bin include lib share
三、封装
1、request_uti.h
/**
* 公共
* @date 2023-01-17
*/
#pragma once
#ifndef REQUEST_UTIL_H
#define REQUEST_UTIL_H
#include <string>
#include <vector>
#include <curl/curl.h>
#include "cJSON.h"
using namespace std;
class RequestUtil {
public:
RequestUtil() = default;
~RequestUtil() = default;
static RequestUtil* instance();
void test();
int restPost( string &url, string &data, cJSON **result, int timeout = 60);
CURLcode restGet( string &url, string &data, string &response, int timeout = 60);
private:
// size_t receiveData(void *contents, size_t size, size_t nmemb, void *stream);
};
#endif // REQUEST_UTIL_H
2、request_uti.cpp
#include <iostream>