我在我的代码中使用libcurl,curl_easy_perform()的前几次尝试返回正确的值,但在此之后,我看到第一个800左右的字节被删除。传递指针write_data函数在第一个800字节左右后开始指向流。curl_easy_perform在点后返回部分结果
下面是代码,我使用片段 -
ctx = curl_easy_init();
curl_easy_setopt(ctx, CURLOPT_POSTFIELDS, bodyData);
curl_easy_setopt(ctx, CURLOPT_URL, serverUrl);
curl_easy_setopt(ctx, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(ctx, CURLOPT_WRITEDATA, response);
res = curl_easy_perform(ctx);
curl_easy_cleanup(ctx);
编辑:好了,所以我认为,对于一些要求,写入数据是为一个名为curl_easy_perform两次()。因此,write_data获取前x个字节,然后在下一次读取剩余的字节。但是我的write_data函数每次都会覆盖响应指针。我如何知道是否需要memcpy或连接到响应指针?我希望我能够正确描述这种情况。
由于
P
https://curl.haxx.se/libcurl/c/getinmemory.html中有一个工作代码 – danielapsmaior