gpt4 book ai didi

c - 如何使用 libcurl (或其他方式)从 HTTP 服务器检索文件?

转载 作者:行者123 更新时间:2023-11-30 17:25:16 29 4
gpt4 key购买 nike

我正在尝试使用 C 语言从雅虎财经获取股票报价。我知道如何获取我想要的文件,这很简单,您可以在浏览器中输入此 URL,例如:download.finance.yahoo.com/d/quotes .csv?s=YHOO+GOOG+MSFT&f=sl1d1t1c1hgvbap2 它会自动下载文件。我的问题是我想使用 C 程序获取这个文件,我发现 libcurl 显然可以让你做到这一点,但我的努力没有任何意义。我想知道如何使用 libcurl 获取这样的文件,或者如果无法使用 libcurl 如何从 URL 获取文件。

这是我的 libcurl 代码,用于获取不起作用的文件(没有错误,最后只是一个空文件):

#define CURL_STATICLIB
#include <stdio.h>
#include <curl/curl.h>
#include <curl/easy.h>
#include <string.h>

size_t write_data(void* ptr,size_t size,size_t nmemb,FILE* stream){
size_t written;
written=fwrite(ptr,size,nmemb,stream);
}

int main(void){
CURL* curl;
FILE* fp;
CURLcode res;
char* url="http://download.finance.yahoo/d/quotes.csv?s=YHOO+GOOG+MSFT&f=sl1d1t1c1hgvbap2";
//char* url="https://marketviewer.equiduct.com";
char outfilename[FILENAME_MAX]="test.txt";
curl=curl_easy_init();
if(curl){
fp=fopen(outfilename,"wb");
curl_easy_setopt(curl,CURLOPT_URL, url);
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,write_data);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,fp);
res=curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
else {
printf("Error !!!\n");
}
return 0;
}

最佳答案

尝试使用他们的示例来获取文件:

http://curl.haxx.se/libcurl/c/getinmemory.html

描述:描述如何使用回调系统将文档提取到 RAM 缓冲区中,而无需写入文件。

如果需要,您应该将数据保存到文件中。

关于c - 如何使用 libcurl (或其他方式)从 HTTP 服务器检索文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091024/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com