【c/cpp】使用libcurl 发送 POST|GET 等请求
话不多说,直接上代码,改吧改吧就能自己用啦
#include "curl/curl.h"
#include "curl/easy.h"
class HttpClient {
public:
int Init(){
curl_conn_ = curl_easy_init();
if (!curl_conn_) {
std::cout << "curl_easy_init failed " << std::endl;
return -1;
}
msg_ = "hello";
URL_ = "http://127.0.0.1:8080/hello"
}
int PushData(){
// opt
curl_easy_setopt(curl_conn_, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl_conn_, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl_conn_, CURLOPT_URL, URL_.c_str());
curl_easy_setopt(curl_conn_, CURLOPT_DEFAULT_PROTOCOL, "http");
// head
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl_conn_, CURLOPT_HTTPHEADER, headers);
// data
auto code = curl_easy_setopt(curl_conn_, CURLOPT_POSTFIELDS, msg_.c_str());
if (code != CURLE_OK) {
std::cout << " Failed to set CURLOPT_POSTFIELDS " << code << std::endl;
return -1;
}
//send data
code = curl_easy_perform(curl_conn_);
if (code != CURLE_OK) {
std::cout << " Failed to post " << url << code << std::endl;
return -2;
}
return 0;
}
int UnInit() { curl_easy_cleanup(curl_conn_); }
private:
CURL* curl_conn_
std::string URL_;
std::string msg_;
}