c语言 发送post请求
时间: 2023-05-20 12:04:32 浏览: 89
可以使用curl库来发送post请求,以下是一个示例代码:
```
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=JohnDoe&age=25");
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
```
这个代码使用curl库发送了一个post请求,请求的URL是http://example.com,请求的参数是name=JohnDoe&age=25。你可以根据自己的需要修改URL和参数。
相关问题
c语言curl post请求
您可以使用C语言中的libcurl库来进行POST请求。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
// 初始化curl
curl_global_init(CURL_GLOBAL_DEFAULT);
// 创建一个curl句柄
curl = curl_easy_init();
if(curl) {
// 设置请求的URL
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com");
// 设置POST请求
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// 设置POST数据
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "key1=value1&key2=value2");
// 发送请求
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
// 清理curl
curl_easy_cleanup(curl);
}
// 清理全局curl状态
curl_global_cleanup();
return 0;
}
```
c语言 socket 发送 http post
C语言可以通过socket发送HTTP POST请求,以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main() {
int sock;
struct sockaddr_in server;
char *message;
// 创建socket
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
printf("创建socket失败\n");
exit(1);
}
printf("socket创建成功\n");
server.sin_addr.s_addr = inet_addr("服务器IP地址");
server.sin_family = AF_INET;
server.sin_port = htons(80);
// 连接服务器
if (connect(sock, (struct sockaddr *)&server, sizeof(server)) < 0) {
printf("连接服务器失败\n");
exit(1);
}
printf("已连接到服务器\n");
// 构造HTTP POST请求
message = "POST /path/to/resource HTTP/1.1\r\n"
"Host: localhost\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Content-Length: 15\r\n\r\n"
"name=John+Doe\r\n";
// 发送HTTP POST请求
if (send(sock, message, strlen(message), 0) < 0) {
printf("发送失败\n");
exit(1);
}
printf("请求已发送\n");
// 从服务器接收响应
char server_response[4096];
if (recv(sock, server_response, sizeof(server_response), 0) < 0) {
printf("接收失败\n");
exit(1);
}
printf("服务器响应:\n%s\n", server_response);
// 关闭socket连接
close(sock);
printf("连接已关闭\n");
return 0;
}
```
以上代码实现了使用C语言的socket发送HTTP POST请求。首先通过`socket`函数创建了一个套接字,然后使用`connect`函数连接到指定的服务器。接下来,构造了一个HTTP POST请求的字符串,并通过`send`函数发送到服务器。再使用`recv`函数从服务器接收响应,并将响应打印出来。最后,使用`close`函数关闭socket连接。
需要注意的是,上述代码中的`服务器IP地址`和`/path/to/resource`应根据实际情况进行替换。另外,还应当对函数的返回值进行合理的错误处理,确保请求和连接的成功。