function ParseUrl($URL)
{
    $crl = curl_init();
    curl_setopt ($crl, CURLOPT_URL, $URL);
    curl_setopt ($crl, CURLOPT_PORT, 8086);
    curl_setopt ($crl, CURLOPT_USERPWD, "admin:pass");
    curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, 5);
    $ret = curl_exec($crl);
    curl_close($crl);
    return $ret;
}

echo ParseUrl('http://xxx.me/serverinfo');

上面的代码完全不返回任何内容。我尝试使用curl获得的页面使用http身份验证。

我缺少一些简单的东西吗?

最佳答案

首先,请执行此操作,然后查看所获得的内容,然后显而易见,问题出在哪里:

在curl_exec之后检查请求是否存在错误:

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

这将为您提供足够的信息,以了解请求是否存在错误。如果没有错误,您可以检查curl_exec之后发送的请求,以便再次检查发送的所有内容是否到位:
print_r(curl_getinfo($ch));

编辑:评论后,这就是您要查找的缺失内容:

您需要设置选项CURLOPT_HTTPAUTH

Quote from php.net on the subject:

关于php - PHP CURL不返回任何内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6324819/

10-13 02:51