File-get-content не удалось открыть поток Unauthorized - PullRequest
2 голосов
/ 25 августа 2010

Я пытаюсь использовать file_get_contents. Я убедился, что allow_url_fopen включен в php.ini.На данный момент он говорит мне:

[function.file-get-contents]: не удалось открыть поток: сбой HTTP-запроса!HTTP / 1.1 401 Unauthorized

Все, что я делаю, это следующее, к которому я могу получить доступ через браузер без проблем.

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

Я считаю, что это проблема аутентификации, но не уверен, как я могу предоставить правильные учетные данные из самого скрипта.Любые идеи очень приветствуются.

Ответы [ 3 ]

13 голосов
/ 25 августа 2010

В вашем URL попробуйте:

http://user:password@site/ 

(добавьте все остальные URL-адреса для вашего API)

5 голосов
/ 25 августа 2010

Просто поместите информацию о пользователе в URL:

$url = 'http://user:password@domain.tld/foo/bar/whatever';
4 голосов
/ 25 августа 2010

Код состояния 401 Unauthorized означает, что вы должны были пройти проверку подлинности, но вы этого не сделали или что вы прошли проверку подлинности с неверными учетными данными. Он чаще всего используется при использовании аутентификации HTTP, которая является аутентификацией, встроенной в протокол HTTP, и поэтому универсальна не только для документов HTML, но и для всего, что передается по протоколу HTTP.

Для аутентификации с помощью HTTP-аутентификации просто добавьте username:password@ перед именем хоста в URL. Например:

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

Это запросит каталог /passwordprotected/ у example.com с именем пользователя foobar и паролем mysupersecretpassword.

Это не хуже, чем это. :)

...