我在我的代码中使用 libcurl,curl_easy_perform() 的前几次尝试返回了正确的值,但之后我看到前 800 个左右的字节被丢弃了。传递的指针 write_data 函数开始指向前 800 个字节左右之后的流。
这是我使用的代码片段 -
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);
编辑:好的,所以我看到对于某些请求,write_data 为一个 curl_easy_perform() 调用了两次。所以 write_data 获取前 x 个字节,然后在下一次读取剩余的字节。但是我的 write_data 函数每次都会覆盖响应指针。我如何知道我是否需要 memcpy 或连接到响应指针?我希望我能够正确地描述情况。
谢谢
磷