[英]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.