文件获取内容无法打开流未经授权

Aar*_*ron 2 php http httpwebrequest file-get-contents

我正在尝试使用file_get_contents.I确保在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);
Run Code Online (Sandbox Code Playgroud)

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

Cfr*_*eak 13

在你的网址尝试:

http://user:password@site/ 
Run Code Online (Sandbox Code Playgroud)

(附加API的其余URL应该是)


Rao*_*uke 5

只需将用户信息放入URL:

$url = 'http://user:password@domain.tld/foo/bar/whatever';
Run Code Online (Sandbox Code Playgroud)


Frx*_*rem 5

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

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

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

这将请求包含用户名和密码的/passwordprotected/目录。example.comfoobarmysupersecretpassword

没有比这更糟糕的了。:)