gpt4 book ai didi

c - libcurl:分块编码中发现格式错误的编码

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

我现在尝试从 Web REST API 获取响应,但由于以下问题而失败(来自 libcurl 调试)

Malformed encoding found in chunked-encoding

struct wapi_resp_data {
char *ptr;
size_t len;
};

static size_t
write_resp_data(void *data, size_t size, size_t nmemb, void *param)
{
struct wapi_resp_data *res = (struct wapi_resp_data *) param;

res->ptr = realloc(res->ptr, res->len + size * nmemb + 1);
if (!res->ptr) {
res->len = 0;
return -1;
}
memcpy(&res->ptr[res->len], data, size * nmemb);

res->len += size * nmemb;
res->ptr[res->len] = '\0';

return size * nmemb;
}

int curl_get_response(const char *url, struct curl_slist_headers *headers)
{
...

curl_easy_setopt(curl, CURLOPT_HTTPHEADER, post_headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, req_data);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(req_data));

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_resp_data);

memset(&res, 0, sizeof(res));
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &res);
...
}

我尝试使用curl命令进行测试,但它有效。

这是示例命令:

curl -d '{ "test": "test"}' -H "Content-Type: application/json"

http://xxx/api/ -v

我的代码有问题吗?

最佳答案

这是从服务器接收的 HTTP 分块编码流的问题。

如果您使用的是非常旧的 curl ,则可能会发生这种情况,因为 curl 在 curl 7.35.0 之前更加严格,但从那时起,只要它了解即将发生的事情,它就会尝试更加宽松。

关于c - libcurl:分块编码中发现格式错误的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49774288/

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