文件获取内容未能打开流未授权

时间:2010-08-25 13:49:11

标签: php http httpwebrequest file-get-contents

我正在尝试使用file_get_contents。我确保在php.ini中启用了allow_url_fopen。截至目前,它告诉我:

[function.file-get-contents]:无法打开流:HTTP请求失败! HTTP / 1.1 401未经授权

我所做的就是以下内容,我可以通过浏览器轻松访问。

$url=('http://site/@api/users/=john_smith@site.com/properties');
$xmlString=file_get_contents($url);

我认为这是一个身份验证问题,但不确定如何从脚本本身提供正确的凭据。任何想法将不胜感激。

3 个答案:

答案 0 :(得分:12)

在您的网址中尝试:

http://user:password@site/ 

(附加API的其余URL应该是

答案 1 :(得分:5)

只需将用户信息放入网址:

$url = 'http://user:password@domain.tld/foo/bar/whatever';

答案 2 :(得分:4)

401 Unauthorized状态代码表示您应该已经过身份验证,但您没有,或者您已使用错误的凭据进行了身份验证。它最常用于使用HTTP身份验证,这是HTTP协议中内置的身份验证,因此不仅适用于HTML文档,而且适用于通过HTTP协议传输的任何内容。

要通过HTTP身份验证进行身份验证,只需在URL中的主机名前添加 username:password@ 即可。例如:

  

http://foobar:mysupersecretpassword@example.com/passwordprotected/

这会从/passwordprotected/请求example.com目录,其中包含用户名foobar和密码mysupersecretpassword

这并不比这更糟糕。 :)