【问题标题】:C++ cURL "empty reply from server" every timeC ++ cURL“来自服务器的空回复”每次
【发布时间】:2011-08-21 06:14:20
【问题描述】:

我正在尝试编写一个 C++ 程序以使用 cURL 从网站读取。我开始使用 cURL 示例 simple.c 中的代码。如果我准确地使用该代码,无论我尝试访问哪个 URL,我都会收到错误 #52:“来自服务器的空回复”。这适用于我尝试的任何 URL。如果我从命令行使用 cURL,它似乎工作正常。

我的程序的详细响应是:

*About to connect() to www.google.com port 80 (#0)
* Trying 74.125.91.99...* connected
*connected to www.google.com (74.125.91.99) port 80 (#0)
>GET / HTTP/1.1
Host: www.google.com
Accept: */*

* Empty reply from server
* Connection #0 to host www.google.com left intact
* server returned nothing (no headers, no data)
*Closing connection #0

代码是:

CURL *curl; 
CURLcode res;

curl = curl_easy_init(); 
curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com"); 
curl_easy_setopt(curl, CURLOPT_VERBOSE, TRUE);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl); 

【问题讨论】:

  • 该代码非常适合我。将页面输出到 STDOUT 没有问题。 (除了没有定义TRUE,但使用1 有效)
  • 它看起来也很好
  • Aaaaarghh,尝试删除 CURLOPT_VERBOSE 标志。某些版本(我不记得究竟是哪个版本)使用 CURLOPT_VERBOSE 标志有可怕的错误,设置为 1。尝试不使用它。还有,哪个是curl'a版本?
  • 我试过去掉verbose标志,还是不行。

标签: c++ curl


【解决方案1】:

“来自服务器的空回复”表示 libcurl 在发出请求后没有收到来自服务器的任何响应。在 HTTP 中,每个请求总是会返回一些东西,所以这甚至没有用 HTTP 响应,因此是一个相当严重的错误。

您使用的是非常旧的 libcurl,因此您可能遇到了当时存在的错误。

其他可能的原因是您的网络/设置中的某些东西阻止了它的工作,例如防火墙。

【讨论】:

  • 我会尝试更新版本,看看是否能解决问题
  • 升级到最新版本 (7.21.6) 似乎可以解决问题,谢谢!
【解决方案2】:

我在调试 curl 的空响应时浪费了几个小时,所以我在这里分享,希望能防止同样的事情发生在其他人身上。

我注意到 OPTIONS 调用在浏览器和我机器上的 curl 中都返回了“来自服务器的空回复”错误,但从同事那里运行良好。当我尝试 telnet 到 Web 服务器上的端口 80 时,输入“OPTIONS /path/to/resource HTTP/1.1”行后,只要按 ENTER,连接就会立即关闭。执行“lsof -i | grep telnet”(在输入 OPTIONS 行之前打开 telnet 会话),我看到我的 telnet 会话是本地的,而不是我指定的服务器。我知道当时正在发生一些非常奇怪的事情。原来是因为我安装了 Cisco AnyConnect VPN 软件。 VPN 不需要运行——仅仅安装它就足以拦截我的流量。可恶的。用谷歌搜索一下这个页面,它更多地讨论了这个问题:

http://www.bennadel.com/blog/2559-cisco-anyconnect-vpn-client-may-block-cors-ajax-options-requests.htm

所以,简短的故事是:它可能不是服务器......本地的东西可能正在拦截和阻止您的网络流量。

【讨论】:

    猜你喜欢
    • 2012-08-10
    • 2015-12-20
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多