错误6:curl无法解析主机名

时间:2018-06-01 09:16:50

标签: php php-curl

我在IIS 8.5下运行在Windows服务器12R2上运行的PHP 5.6.36 每当我调用此代码时,我会收到一个“错误代码:6”回显和一个空的$ responseText,尽管我可以通过浏览器访问此地址。

我尝试将CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST切换为true设置并使用https://地址,但无济于事。不明白为什么我可以通过浏览器访问这些地址,但不能从命令行访问。

function genericGet($url,$userName,$passWord){

//overriding $url for the purposes of test
$url = "http://www.google.com";

$reqDefaults = array(
    CURLOPT_URL             => $url,
    CURLOPT_POST            => false,
    CURLOPT_HEADER          => false,
    CURLOPT_SSL_VERIFYPEER  => false,
    CURLOPT_RETURNTRANSFER  => true,
    CURLOPT_SSL_VERIFYHOST  => false,
    CURLOPT_HTTPAUTH        => CURLAUTH_BASIC,
    CURLOPT_USERNAME        => $userName,
    CURLOPT_PASSWORD        => $passWord
);

$curlReq = curl_init();
$responseText = curl_exec($curlReq);
echo "error code:".curl_errno($curlReq)."\r\n";
curl_close($curlReq);

return $responseText;
}

1 个答案:

答案 0 :(得分:0)

好的,所以我终于解决了这个问题。服务器上运行了一个应用程序代理。我检查了Firefox中的互联网设置,发现代理地址然后将CURLOPT_PROXY设置添加到我的setopt数组并且它有效。最终代码如下所示:

function genericGet($url,$userName,$passWord){

//overriding $url for the purposes of test
$url = "http://www.google.com";

$reqDefaults = array(
    CURLOPT_URL             => $url,
    CURLOPT_POST            => false,
    CURLOPT_HEADER          => false,
    CURLOPT_SSL_VERIFYPEER  => false,
    CURLOPT_RETURNTRANSFER  => true,
    CURLOPT_SSL_VERIFYHOST  => false,
    CURLOPT_HTTPAUTH        => CURLAUTH_BASIC,
    CURLOPT_USERNAME        => $userName,
    CURLOPT_PASSWORD        => $passWord,
    CURLOPT_PROXY           => 'proxyaddress:8080'
);

$curlReq = curl_init();
$responseText = curl_exec($curlReq);
echo "error code:".curl_errno($curlReq)."\r\n";
curl_close($curlReq);

return $responseText;
}