我尝试从需要用户身份验证的IIS服务器获取curl页面。Curl returntransfer为空,curl_getinfo“Error:1”
curl_exec什么都不返回,CURLOPT_RETURNTRANSFER为真。如果CURLOPT_RETURNTRANSFER为false,则curl_exec返回true。
有什么问题?该页面既不是在成功之后,也不是在认证失败之后是空的。
$username = $_POST["acc"];
$password = $_POST["pw"];
$url = "https://secure.website.com/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
$page = curl_exec($ch);
echo "Error: " . print_r(curl_getinfo($ch)) . "<br>";
curl_close($ch);
echo "<br>Page:<br>" . $page . "<br>---------------------------<br>";
脚本输出看起来是这样的:
Array ([url] => https://secure.website.com/
[content_type] => text/html
[http_code] => 302
[header_size] => 435
[request_size] => 137
[filetime] => -1
[ssl_verify_result] => 20
[redirect_count] => 0
[total_time] => 0.187
[namelookup_time] => 0
[connect_time] => 0
[pretransfer_time] => 0.046
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 0.187
[redirect_time] => 0
[certinfo] => Array ())
Error: 1
Page:
---------------------------
curl_error输出没有错误。 curl_getinfo末尾的“Error:1”是我唯一的暗示。 该脚本适用于其他网站。
你的代码的一部分打印出与'http_code'数组中呢? – Shawn 2013-02-21 15:29:39