cURL身份验证问题Datatel R25 XML Feed

时间:2011-03-24 18:46:09

标签: php xml curl

我仍然很擅长使用PHP。我想戳一个小项目。我可以在工作时从我们的日历系统访问xml提要。 Feed需要使用用户名和密码进行身份验证。我正在尝试自动拉动此Feed。我希望有一天能够使用它来自动安排另一个系统,但是现在我只是想让这一方工作。

我已经阅读了php.net上的一些cURL文档。我还搜索了stackoverflow的一些例子。他们帮助我开始,但没有进一步。以下是我到目前为止的情况。但我得到的只是:

  

UNAUTHORIZED请求需要   授权

所以我正在绞尽脑汁想出可能是什么问题。我的问题的一部分我肯定是我对客户端和服务器之间发生的实际过程的无知。当我与它进行交互时,我只是转到提要URL,浏览器提示我输入用户名和密码,然后将其放入其中后给我一个xml页面。

我检查过大多数格式错误和语法错误,我知道要查找。这可能仍然是它,但在这一点上,我认为我更缺乏理解它是如何组合在一起的。谢谢你的帮助。

类似问题:

Parsing XML data with Namespaces in PHP

CURL HTTP Authentication at server side

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://somesight.someplace.edu/r25ws/servlet/wrd/run/events.xml");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
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_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>

1 个答案:

答案 0 :(得分:0)

在查看Twitter的类似教程后,我自己想出来了。我尝试了一种不同的方法来格式化选项,它工作正常。我也减少了我发送的选项数量,因为它看起来有点矫枉过正。代码在下面有效。

<?php
$username = 'myusername';
$password = 'mypassword';

$datecall = curl_init("http://somesite.someplace.edu/r25ws/servlet/wrd/run/events.xml");

curl_setopt($datecall, CURLOPT_USERPWD, $username.":".$password);
curl_setopt($datecall, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($datecall);
echo $result;

?>