用c++实现post请求
时间: 2024-01-26 19:39:11 浏览: 148
C++实现POST请求
下面是一个使用c语言实现POST请求的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURL *curl;
CURLcode res;
struct curl_slist *headers = NULL;
char *url = "http://example.com/api";
char *post_data = "username=test&password=test123";
long response_code;
char *response_data = NULL;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, stdout);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
else {
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
printf("Response code: %ld\n", response_code);
}
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
```
在这个示例中,我们使用了libcurl库来发送HTTP请求。首先我们要调用`curl_global_init()`函数进行全局初始化,然后创建一个`CURL`类型的指针,并使用`curl_easy_setopt()`函数设置相关选项,例如URL、POST数据、HTTP头部等。最后调用`curl_easy_perform()`函数发送请求。
如果发送请求成功,我们可以使用`curl_easy_getinfo()`函数获取响应码,并使用`fwrite()`函数将响应数据输出到标准输出。最后调用`curl_easy_cleanup()`函数释放资源,并调用`curl_global_cleanup()`函数进行全局清理。
阅读全文