我正在使用libcurl
並能夠receive json response
和saving it to file
。如何從服務器接收zip文件:C/C++
下面是代碼
#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
#include <string.h>
#define URL "http://www.joes-hardware.com/tools.html"
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written;
written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main(void) {
CURL *curl;
FILE *fp;
CURLcode res;
//char *url = "http://www.joes-hardware.com/tools.html";
char *url= URL;
char outfilename[FILENAME_MAX] = "./json";
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);
}
return 0;
}
作爲我開發的應用程序的一部分,現在它必須從服務器獲取一個zip
文件。
假設URL
如下格式:
#define URL "https://Server/File.zip"
對於這樣的URL,代碼不能夠保存zip
文件。 如何做到這一點?
我正在爲LINUX
平臺開發。
你檢查的*您在此列表中每調用API *,看看結果碼他們有失敗?特別是'fopen'和'curl_easy_perform',但是* all *都不是一個壞主意。並且'https' url的設置可能比簡單的拉動複雜得多。 [見此](http://curl.haxx.se/libcurl/c/simplessl.html)。 – WhozCraig 2014-08-28 04:36:39
@WhozCraig對於'http' request say ....'「http://www.joes-hardware.com/tools.html」'',代碼工作絕對正常。「它將json響應保存到相應的文件中。但請求'https:// Server/File.zip'不保存 – 2014-08-28 04:48:06