繁体   English   中英

PHP cURL问题:HTTP代码0

[英]PHP cURL Problems: HTTP Code 0

我正在尝试通过cURL和PHP建立一个网站/ API。 无论我尝试使用哪种URL,HTTP代码都为0。我尝试了几种不同的URL。 无论我尝试什么,我都将获得以下curl_getinfo(请参见下文)。 我已验证PHP.ini文件中启用了cURL。

码:

 // create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.yahoo.com");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

$report=curl_getinfo($ch);
print_r($report);

// grab URL and pass it to the browser
curl_exec($ch);

if(curl_errno($ch)) {
   echo 'Curl error: ' . curl_error($ch);
}

print curl_error($ch);

// close cURL resource, and free up system resources
curl_close($ch);

cURL_getinfo:

 Array
(
[url] => http://www.yahoo.com
[content_type] => 
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => 0
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0
[namelookup_time] => 0
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[certinfo] => Array
    (
    )

[primary_ip] => 
[primary_port] => 0
[local_ip] => 
[local_port] => 0
[redirect_url] => 
 )

您需要调用curl_exec($ch); curl_getinfo($ch); 原因这是与服务器的实际连接:

也不需要在CURLOPT_POST标志中,因为它是一个get调用:

// create a new cURL resource
$ch = curl_init();

//for post calls:
//$post = 'a=b&d=c';
//$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=utf-8';
//$headers[] = 'Content-Length: ' . strlen($post);

//for get calls:
$headers = array();
$headers[] = 'Content-type: charset=utf-8'; 


$headers[] = 'Connection: Keep-Alive';

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.yahoo.com");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_exec($ch);
$report=curl_getinfo($ch);
print_r($report);

// grab URL and pass it to the browser


if(curl_errno($ch)) {
   echo 'Curl error: ' . curl_error($ch);
}

print curl_error($ch);

// close cURL resource, and free up system resources
curl_close($ch);

暂无
暂无

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

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