Я пытаюсь использовать file_get_contents. Я убедился, что allow_url_fopen включен в php.ini. На данный момент это говорит мне:
[function.file-get-contents]: не удалось открыть поток: HTTP-запрос не удался! HTTP / 1.1 401 Несанкционированный
Все, что я делаю, следующее: я могу получить доступ через браузер без проблем.
$url=('http://site/@api/users/=john_smith@site.com/properties'); $xmlString=file_get_contents($url);
Я считаю, что это проблема аутентификации, но не знаю, как я могу предоставить правильные учетные данные из самого скрипта. Любые идеи очень приветствуются.
В своем url попробуйте:
http://user:password@site/
(добавьте все остальное URL-адрес для вашего API)
Просто поместите информацию о пользователе в URL-адрес:
$url = 'http://user:password@domain.tld/foo/bar/whatever';
401 Unauthorized
код состояния означает, что вы должны пройти аутентификацию, но этого у вас нет, или что вы прошли аутентификацию с неправильными учетными данными. Он чаще всего используется при использовании HTTP-аутентификации, которая является аутентификацией, встроенной в HTTP-протокол, и поэтому является универсальной не только для документов HTML, но и для чего-либо, переданного по протоколу HTTP.
Для аутентификации с помощью HTTP-аутентификации просто добавьте username:password@
перед именем хоста в URL-адресе. Например:
Http: // Foobar: mysupersecretpassword@example.com/passwordprotected/
Это запросит каталог /passwordprotected/
from example.com
с именем пользователя foobar
и паролем mysupersecretpassword
.
Это не хуже. 🙂