c语言实现get请求http
时间: 2024-12-14 17:12:38 浏览: 17
c语言实现http请求下载
在C语言中直接实现HTTP GET请求通常会涉及到使用网络库,比如libcurl。下面是一个简单的示例,展示了如何使用libcurl发送GET请求:
```c
#include <stdio.h>
#include <curl/curl.h>
size_t write_function(void *ptr, size_t size, size_t nmemb, FILE *stream) {
return fwrite(ptr, size, nmemb, stream);
}
int main() {
CURL *curl;
CURLcode res;
FILE *fp;
curl_global_init(CURL_GLOBAL_DEFAULT); // 初始化libcurl
// 创建一个CURL会话
curl = curl_easy_init();
if(curl) {
// 设置URL
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api/resource"); // 替换为你想要GET的URL
// 打开文件用于接收响应数据
fp = fopen("response.txt", "wb");
if(fp) {
// 设置写入函数,将响应写入文件
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_function);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
// 发送请求并获取结果
res = curl_easy_perform(curl);
// 检查错误
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
// 关闭文件流
fclose(fp);
// 清理并关闭CURL会话
curl_easy_cleanup(curl);
}
else {
fprintf(stderr, "Failed to open file\n");
}
}
else {
fprintf(stderr, "Failed to initialize curl session\n");
}
curl_global_cleanup(); // 释放资源
return 0;
}
```
这个例子中,`curl_easy_perform()` 函数负责发起GET请求,并将服务器的响应写入到本地文件中。如果需要处理响应内容而不是保存到文件,可以修改回调函数`write_function`。
阅读全文