Linux libcurl curl\u easy\u perform返回OK,但未调用响应回调函数
我向服务器发送一条json消息,服务器应该给出响应 当我使用PostMan测试服务器时,我可以得到响应 但是我的linux代码是curl\u easy\u setopt(curl,CURLOPT\u WRITEFUNCTION,respCallBack)代码> 似乎不起作用 以下是我的标题:Linux libcurl curl\u easy\u perform返回OK,但未调用响应回调函数,linux,libcurl,Linux,Libcurl,我向服务器发送一条json消息,服务器应该给出响应 当我使用PostMan测试服务器时,我可以得到响应 但是我的linux代码是curl\u easy\u setopt(curl,CURLOPT\u WRITEFUNCTION,respCallBack) 似乎不起作用 以下是我的标题: /* add HTTP header */ headers = curl_slist_append(headers, "Accept:text/plain");
/* add HTTP header */
headers = curl_slist_append(headers, "Accept:text/plain");
headers = curl_slist_append(headers, "Content-Type:application/json");
headers = curl_slist_append(headers, "Expect:");
下面是curl选项:
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
curl_easy_setopt(curl, CURLOPT_POST, 1L);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, (void *)param);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, connTimeout);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, respCallBack);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, (char *)errbuf);
当客户端使用头
Accept:text/plain
时,服务器没有发送响应,但在该头值更改为application/json
后,服务器确实返回了响应。服务器是否返回正文?是否设置了卷发头?您可能希望发布一个自包含的示例来演示该问题。自包含意味着给我们硬编码字符串作为服务器的鞋钉是有意义的。CURLOPT_头是一个选项,告诉curl是否将接收到的头发送到回调。下一步是用最少的代码来更新问题。我设置了标题“Accept:text/plain”。这是否意味着我只能处理没有格式的代表?如果服务器给出json响应,回调函数将不起作用?accept头告诉服务器您希望返回的答案是什么格式。我在这个更改后得到响应headers=curl\u slist\u append(headers,“accept:application/json”)代码>谢谢,您的评论有助于lot@AllanWind