【发布时间】:2014-09-16 14:31:09
【问题描述】:
所以我已经使用 fiddler 以及 Rest Console 和 Advanced Rest Console 对此进行了测试,一切正常,但是当我从 cURL 运行时,我收到连接超时错误或无法连接到主机。网址相同,标题相同,内容主体相同。我只是不明白。 编辑:如果没有在服务器上打开授权,代码就可以正常工作
在这里卡了将近 5 个小时,代码如下:
function getLicenses() {
$license = new LicenseConnector();
$curl = curl_init();
$headers = array(
'Authorization: Bearer 12345...',
'Content-Type: application/x-www-form-urlencoded'
);
$myPost = 'RequestingAgency=Woo&AcctEmail=&LengthOfLic=365&Demo=on';
curl_setopt_array( $curl, array(
curl_setopt($curl, CURLOPT_URL, 'http://example.com/api/serialnumbers/getnewserial'),
curl_setopt( $curl, CURLOPT_POST, 1 ),
curl_setopt( $curl, CURLOPT_POSTFIELDS, $myPost ),
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 ),
curl_setopt($curl, CURLOPT_HEADER, 1),
curl_setopt($curl, CURLINFO_HEADER_OUT, true),
curl_setopt( $curl, CURLOPT_HTTPHEADER, $headers )
) );
$result = curl_exec( $curl );
$results = json_decode( $result );
if ( curl_errno( $curl ) ) {
echo 'error:' . curl_error( $curl );
} else {
echo $results;
}
curl_close( $curl );
}
然后我运行函数...
【问题讨论】:
-
它输出什么?
-
顺便说一句,如果我在服务器上关闭授权,代码就可以正常工作。
-
这是输出:“错误:无法连接到主机”
-
做过任何基本的调试,比如尝试从同一台机器的命令行远程登录到端口 80? “超时”意味着您的数据包在某处丢失。例如两端都有防火墙。
-
不,我没有尝试过,但是相同的代码在没有授权的情况下工作......而且,这是从共享主机运行的,所以我没有 shell 访问权限,在我们的服务器上正在尝试命中我们有允许来源:*
标签: php curl http-headers