2013-11-28 66 views
0

我正在创建一个PHP curl请求到服务器,期待一些字符串响应但没有响应生成,这可能是什么原因?从Curl请求到https服务器没有响应

下面是相同的卷曲代码:

$fields = array("username"=> 'xxx',"domain"=> 'xxx',"password" => 'xxx'); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://host:8090/add-user"); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);  
curl_setopt($ch, CURLOPT_USERPWD, $usr.':'.$pass); 
curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  
if(!$result=curl_exec($ch)){ 
    trigger_error(curl_error($ch)); 
} 
curl_close($ch); 
var_dump($result); 

下面是相同的等效命令行请求:

curl --data 'username=xxx&domain=xxx&password=xxx' https://host:8090/add-user -k -v -u 'usr:pass' 

什么,我做错了什么?

+0

如果你var_dump()curl_error()消息会发生什么? – Cups

+0

得到没有回应,并没有错误 – Ekansh

回答

1

您应该首先尝试使用curl_setopt($ch, CURLOPT_VERBOSE, $file_handler);其中$file_handler = fopen('somefile.log', 'a')。因此,您将看到究竟是什么cURL,以及它失败的位置。

+0

谢谢..实际上响应通过标题返回..使用curl_getinfo($ ch,CURLINFO_HTTP_CODE);解决了这个问题。 – Ekansh