请用C++写一个发起post请求的代码
时间: 2024-04-09 14:27:26 浏览: 85
当然,下面是一个用C++发起POST请求的示例代码:
```cpp
#include <iostream>
#include <string>
#include <curl/curl.h>
// 回调函数,用于处理接收到的HTTP响应
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* response) {
size_t totalSize = size * nmemb;
response->append((char*)contents, totalSize);
return totalSize;
}
int main() {
CURL* curl;
CURLcode res;
// 初始化CURL
curl_global_init(CURL_GLOBAL_DEFAULT);
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数据
std::string postData = "key1=value1&key2=value2";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData.c_str());
// 设置接收到响应的回调函数
std::string response;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
// 执行请求
res = curl_easy_perform(curl);
// 检查执行结果
if (res != CURLE_OK) {
std::cout << "Failed to perform request: " << curl_easy_strerror(res) << std::endl;
} else {
std::cout << "Response: " << response << std::endl;
}
// 清理CURL资源
curl_easy_cleanup(curl);
}
// 清理全局CURL资源
curl_global_cleanup();
return 0;
}
```
这是一个使用libcurl库的示例代码,它可以在C++中发起POST请求。你需要将`http://example.com`替换为你要请求的URL,并根据需要修改POST数据。请确保你的项目中已经正确安装和链接了libcurl库。
阅读全文