libcurl
我正在尝试使用c api从某个基于 web 的 api 获取一些数据。Curl 调用 api 很好。但是,size_t nmemb
太小而无法容纳响应。不知何故,它在 1280 处被“切断”了。有谁知道如何解决这个问题?也是size_t size
1..
这些是我使用的功能:
int http_call(char *url) {
CURL *curl;
FILE *curlfile;
CURLcode res;
char outfilename[FILENAME_MAX] = "/usr/local/var/log/ndcurl";
curl = curl_easy_init();
if (curl) {
curlfile = fopen(outfilename,"w");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_release_data);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(curlfile);
}
return 0;
}
和回调:
static size_t write_release_data(void *buffer, size_t size, size_t nmemb, void *userp) {
char **response_ptr = (char**)userp;
*response_ptr = strndup(buffer, (size_t)(size *nmemb));
printf("The Response: %s", *response_ptr);
return 0;
}