对于PHP项目我一直想根据用户提供的反馈向Github项目添加问题。但是,我只是从Github API获得了一些东西。以下命令行为我提供了我希望得到的信息:
$ curl -u <username> https://api.github.com/user
这给了我我的用户信息,但是当我尝试使用PHP时,我只会得到黑页。我的代码是:
<?php
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'https://api.github.com/user' );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_USERPWD, "<username>:<password>" );
curl_setopt( $ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
$output = curl_exec( $ch );
$info = curl_getinfo( $ch );
curl_close( $ch );
echo $output;
var_dump( $info );
?>
我怀疑$ output与命令行的输出相同,但是这里是空白的。我得到的是$ info:
array(26) { ["url"]=> string(27) "https://api.github.com/user" ["content_type"]=> NULL ["http_code"]=> int(0) ["header_size"]=> int(0) ["request_size"]=> int(0) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(0.203) ["namelookup_time"]=> float(0.015) ["connect_time"]=> float(0.109) ["pretransfer_time"]=> float(0) ["size_upload"]=> float(0) ["size_download"]=> float(0) ["speed_download"]=> float(0) ["speed_upload"]=> float(0) ["download_content_length"]=> float(-1) ["upload_content_length"]=> float(-1) ["starttransfer_time"]=> float(0) ["redirect_time"]=> float(0) ["redirect_url"]=> string(0) "" ["primary_ip"]=> string(14) "192.30.252.136" ["certinfo"]=> array(0) { } ["primary_port"]=> int(443) ["local_ip"]=> string(13) "192.168.0.109" ["local_port"]=> int(28935) }
我找不到在PHP中使用的任何简单示例,我不想将整个框架用于那么简单的事情。根据我从API文档中获得的内容,我应该能够发送我的凭据然后获取信息。
我可能错过了一些明显的东西,但无法弄明白,有人能指出我正确的方向吗?
答案 0 :(得分:0)
我一直在寻找并在另一个API的github项目上发现this问题。除非我参与
,否则看起来curl确实在本地工作时为https返回空curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
在那之后,我得到了一条消息,我错过了一个用户代理,并在包含它之后就可以了。将原始代码上传到我的虚拟主机后,我首先得到了丢失的用户代理消息。
希望我能帮助其他人。