Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux libcurl curl\u easy\u perform返回OK,但未调用响应回调函数_Linux_Libcurl - Fatal编程技术网

Linux libcurl curl\u easy\u perform返回OK,但未调用响应回调函数

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");

我向服务器发送一条json消息,服务器应该给出响应

当我使用PostMan测试服务器时,我可以得到响应

但是我的linux代码是curl\u easy\u setopt(curl,CURLOPT\u WRITEFUNCTION,respCallBack) 似乎不起作用

以下是我的标题:

    /* 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