3

我正在尝试使用 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);

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

4

3 回答 3

13

在您的网址中尝试:

http://user:password@site/ 

(附加您的 API 的 URL 的其余部分)

于 2010-08-25T13:52:16.963 回答
6

只需将用户信息放入 URL:

$url = 'http://user:password@domain.tld/foo/bar/whatever';
于 2010-08-25T13:52:23.703 回答
4

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

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

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

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

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

于 2010-08-25T14:20:50.833 回答