PHP通过身份验证从远程URL获取XML-403错误
我有一个提供xml输出的URL。它需要用户名和密码,我可以使用以下格式通过浏览器访问:PHP通过身份验证从远程URL获取XML-403错误,php,xml,curl,pear,http-request,Php,Xml,Curl,Pear,Http Request,我有一个提供xml输出的URL。它需要用户名和密码,我可以使用以下格式通过浏览器访问: http://username:password@url.com 但是,当我试图通过php文件访问它时,我得到一个403禁止: $url = "http://username:password@url.com"; $xml = @simplexml_load_file($url); print_r($http_response_header); 我曾尝试使用curl并将用户代理设置为浏览器,但这仍然无
http://username:password@url.com
但是,当我试图通过php文件访问它时,我得到一个403禁止:
$url = "http://username:password@url.com";
$xml = @simplexml_load_file($url);
print_r($http_response_header);
我曾尝试使用curl并将用户代理设置为浏览器,但这仍然无法响应数据
$username = "user";
$password = "pass";
$process = curl_init("http://user:pass@url.com/feed?feed_id=1");
//curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
echo $return;
我还尝试使用pear的http请求2,它也给出了一个403
我试图访问的服务器是拒绝通过PHP进行所有连接,还是有办法解决这个问题?
谢谢 您请求的页面似乎很挑剔。确保完全按照浏览器的方式发送所有标题
- 在Firefox中安装Firebug,或使用Chrome的inspector
- 写下请求受保护页面时发送的所有标题
- 完全按照浏览器的方式从php脚本发送标题
- 如果它不起作用,请使用Wireshark验证您是否真的做对了
另一个问题可能是您的IP与服务器不同,并且只有您的IP被列入白名单。尝试删除用户:传入curl init并将浏览器用户代理添加到标头。谢谢,如何添加浏览器用户代理?curl_setopt($process,CURLOPT_USERAGENT,'Mozilla/5.0(Windows;U;Windows NT 6.1;en US;rv:1.9.1.2)Gecko/20090729 Firefox/3.5.2 GTB5');类似这样的。这仍然给出了一个403码。Deni刚才看到使用get请求而不是post