PHP卷曲没有错误或结果

时间:2014-08-10 20:39:54

标签: php curl

在浏览器中运行URL时,会生成与以下代码相同的凭据,它会生成XML。但是,当从服务器运行以下代码时,我得不到任何错误消息或任何结果。 我做错了是IP块,代码错误还是?

根据文档认证是"基本的HTTP / 1.0认证请求"。

<?php
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
$username="myUsername";
$password="myPassword";
$url="http://domain.com?getFeed.php?id=3";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANYSAFE);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$file = curl_exec($ch);
curl_close($ch);
print $file;
?>

<?php ini_set('display_startup_errors',1); ini_set('display_errors',1); error_reporting(-1); $username="myUsername"; $password="myPassword"; $url="http://domain.com?getFeed.php?id=3"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANYSAFE); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); $file = curl_exec($ch); curl_close($ch); print $file; ?>

3 个答案:

答案 0 :(得分:2)

同时添加以下代码,您将获得有关其失败原因的正确信息。

curl_setopt($curlhandle, CURLOPT_VERBOSE, true);

答案 1 :(得分:0)

让我引用documentation

  

成功时返回TRUE,失败时返回FALSE。但是,如果   设置CURLOPT_RETURNTRANSFER选项后,它将返回结果   成功,失败就错了。

由于您未设置此选项,因此$file为true或false。但你只需打印它。

if ($file) {
    // success
    // get the body
} else {
    // failure
    // check curl_error()
}

答案 2 :(得分:0)

您遇到的一个错误是您使用了错误的HTTP身份验证方法,使用CURLAUTH_ANYSAFE,但您写的应该是

  

基本HTTP / 1.0身份验证请求

因此,将CURLOPT_HTTPAUTH设置为,

url_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

(或将其留空,因为CURLAUTH_BASIC是默认值)