繁体   English   中英

在github API上使用curl出错

[英]Got error using curl with github api

我正在使用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时,它将失败。 有什么办法吗?

curl的文档中,它们实际上仅在其示例之一中显示:

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

网址必须包含"" (由于其复杂性)。 该命令应如下所示:

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"

如果您仅使用Windows命令行,则可以从此zip运行winssl的curl(您需要https的ssl版本)。

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

在服务器端,如果您使用的是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”放置的,但是在您的情况下,您可能需要启用SSL验证(因此我评论了它)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM