libcurl可以通过设置回调函数来处理POST请求的返回值。回调函数将在接收到响应数据时被调用,可以用来处理响应数据或将其保存到文件中。
#include <iostream>
#include <curl/curl.h>
// 回调函数,用于处理响应数据
size_t WriteCallback(char* ptr, size_t size, size_t nmemb, void* userdata) {
std::string* response = static_cast<std::string*>(userdata);
response->append(ptr, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl;
CURLcode res;
std::string response;
// 初始化curl
curl = curl_easy_init();
if (curl) {
// 设置请求URL
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
// 设置POST请求
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// 设置POST数据
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "data=example");
// 设置回调函数
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
// 执行请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if (res != CURLE_OK) {
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
} else {
std::cout << "Response: " << response << std::endl;
}
// 清理curl
curl_easy_cleanup(curl);
}
return 0;
}
在这个示例中,我们使用curl_easy_setopt函数设置了POST请求和POST数据。我们还设置了回调函数WriteCallback,用于处理响应数据。在执行请求后,我们检查了请求是否成功,并输出了响应数据。最后,我们使用curl_easy_cleanup函数清理了curl。
No comments yet.