【问题标题】:cURL GET Request Returns No OutputcURL GET 请求返回无输出
【发布时间】:2013-07-17 21:58:27
【问题描述】:

我正在向pinterest.com 发送一个简单的curl 请求。当我使用PHP 执行此操作时,未显示任何结果。我从命令行尝试过,没有结果。然后我在curl 中尝试了详细模式,它给出了:

curl 7.27.0 (i686-pc-linux-gnu) libcurl/7.27.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp 
Features: Debug GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

我已搜索但无法整理。我做错了什么?

命令是:

curl -v pinterest.com

【问题讨论】:

    标签: curl


    【解决方案1】:

    检查标题:它只能通过 https 访问:

    $ curl --dump-header - http://pinterest.com/
    HTTP/1.1 302 FOUND
    Accept-Ranges: bytes
    Age: 0
    Content-Type: text/html; charset=utf-8
    Date: Thu, 18 Jul 2013 19:25:49 GMT
    Etag: "d41d8cd98f00b204e9800998ecf8427e"
    Location: https://pinterest.com/
    Pinterest-Breed: CORGI
    Pinterest-Generated-By: ngapp-b7f64694
    Pinterest-Version: a8eef3c
    Server: nginx/0.8.54
    Set-Cookie: csrftoken=A2VQZGarr509JKxrJxiuW2MbrXNdHlUH; Domain=.pinterest.com; expires=Thu, 17-Jul-2014 19:25:49 GMT; Max-Age=31449600; Path=/
    Set-Cookie: _pinterest_sess="eJwz84isyvfJcilP1S4szHY20A6MKitJKwwPdi+2tY8vycxNtfUN8TX2c3E19gsJNfAPtLVVK04tLs5MsfXMcjTxq/KsAGJj3/CgHL+QoGzfrLCMSKNAIz93X+PIrHQTIF0eFe6X4ZluawsAh3UjNA=="; Domain=.pinterest.com; expires=Sun, 13-Jul-2014 19:25:49 GMT; Max-Age=31103999; Path=/
    Vary: Cookie
    Via: 1.1 varnish
    X-Varnish: 1991078486
    Content-Length: 0
    Connection: keep-alive
    

    如果您使用-L 选项,您将获得该页面:

    $ curl -L http://pinterest.com/
    <!DOCTYPE html>
    <!--[if IE 7 ]><html lang="en" class="ie7 ielt9 ielt10 en"><![endif]-->
    <!--[if IE 8 ]><html lang="en" class="ie8 ielt9 ielt10 en"><![endif]-->
    <!--[if IE 9 ]><html lang="en" class="ie9 ielt10 en"><![endif]-->
    <!--[if (gt IE 9)|!(IE)]><!--><html lang="en" class=" en"><!--<![endif]-->
    
    <head>
        <script>
    [snip]
    

    this link 是 PHP 的实现方式:

    [多年后...] 同样,-V--version,而不是 --verbose,它是小写的 -v。调用curl -V 会导致它显示版本并忽略任何参数,因此无论如何您永远不会以这种方式获得页面。

    【讨论】:

    • 它给了我 :~$ curl -D pinterest.com curl: 没有指定 URL! curl:尝试'curl --help'或'curl --manual'以获取更多信息有什么建议吗? \
    • 破坏了我的剪切和粘贴。将立即修复。
    • -D 需要一个 arg,对于标准输出可以是 '-'。我注意到我的剪切和粘贴有一堆问题,但没有抓住那个问题。对此感到抱歉。
    【解决方案2】:

    可能是目标站点 URL 进行重定向的问题。

    默认情况下,当 curl 在发出请求后收到重定向时,它不会向新 URL 发出请求。例如,考虑 URL http://www.facebook.com。当您使用此 URL 发出请求时,服务器会将 HTTP 3XX 重定向发送到 https://www.facebook.com/。如果您尝试以下操作,您将得到一个空输出:

    $ 卷曲http://www.facebook.com $ 如果你想让 cURL 跟随这些重定向,你应该使用 -L 选项。

    $ curl -L http://www.facebook.com/

    您可以以 pinterest.com 为例进行尝试。 比较“curl pinterest.com”和“curl -L pinterest.com”的输出

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多