【问题标题】:Got error using curl with github api将 curl 与 github api 一起使用时出错
【发布时间】:2015-05-31 08:33:35
【问题描述】:

我正在使用 curl 获取 git 存储库信息。 使用的命令是:

curl https://api.github.com/search/repositories?page=2&q=language:javascript&sort=stars&order=desc

然而,我得到的是:

{
  "message": "Validation Failed",
  "errors": [
    {
      "resource": "Search",
      "field": "q",
      "code": "missing"
    }
  ],
  "documentation_url": "https://developer.github.com/v3/search"
}

如果我直接在浏览器中键入 URL,我会获得正确的 JSON 输出,但是当我使用 curl 时它会失败。有什么解决办法吗?

【问题讨论】:

    标签: javascript git curl


    【解决方案1】:

    curl's documentation 中,它们实际上只显示在其中一个示例中:

    从 IPv6 网络服务器获取主页:curl "http://[2001:1890:1112:1::20]/"

    "" 需要围绕您的 URL(由于其复杂性)。那么命令应该是这样的:

    curl "https://api.github.com/search/repositories?page=2&q=language:javascript&sort=stars&order=desc"
    

    如果您希望将其下载到文件中,则可以使用-O 选项:

    curl -O "https://api.github.com/search/repositories?page=2&q=language:javascript&sort=stars&order=desc"
    

    如果你只是using windows命令行那么你可以从this zip运行winssl的curl(你需要https的ssl版本)。

    但是,我注意到您的问题中有您的javascript 标签,因此如果您打算在客户端使用 curl,curl.js plugin 可能对您有用。

    在服务器端,如果您使用的是 PHP,您可以使用以下代码:

    <?
        $url="https://api.github.com/search/repositories?page=2&q=language:javascript&sort=stars&order=desc";
        
        //  Initiate curl
        $ch = curl_init();
        // Disable SSL verification
        //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        // Will return the response, if false it print the response
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        // Set the url
        curl_setopt($ch, CURLOPT_URL,$url);
        // Execute
        $result=curl_exec($ch);
        // Closing
        curl_close($ch);
        
        // Will dump a beauty json :3
        var_dump(json_decode($result, true));
    ?>

    此代码由"none" in here 放置,但在您的情况下,您可能需要启用 SSL 验证(所以我评论了它)。

    curl_setopt 允许您在使用 curl 获取 json 文件时设置这些必需的选项(以及 URL 本身)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      相关资源
      最近更新 更多