Как я могу получить доступ к RESTful API в PHP, который проецируется паролем (я знаю пароль) - PullRequest
0 голосов
/ 11 июня 2009

Так, например, вот URL: https://rexms.net:32005/rexwapi/common/timeframes - если я зайду на этот URL в своем браузере и введу правильное имя пользователя / пароль, он выдаст мне XML. Проблема в том, что мне нужно получить доступ к этому через PHP, поэтому у меня, очевидно, нет запроса на ввод имени пользователя / пароля.

Текущий код:

$timeframes_xml = simplexml_load_file(file_get_contents('https://rexms.net:32005/rexwapi/common/timeframes'));

Ответы [ 5 ]

6 голосов
/ 11 июня 2009

Я думаю, вы можете просто использовать

https://username:password@rexms.net:32005/rexwapi/common/timeframes
4 голосов
/ 11 июня 2009

Вам необходимо использовать curl с curl_setopt , чтобы установить параметр CURLOPT_USERPWD.

2 голосов
/ 11 июня 2009

Необходимо установить Http-заголовок Авторизация. Установите значение в кодировку base64 для

Basic username:password

Это предполагает, что сервер использует базовую аутентификацию. В Windows вы можете использовать Fiddler, чтобы узнать, какой тип аутентификации запрашивает сервер.

1 голос
/ 11 июня 2009

Лучше всего подойти к этому, используя три пакета PEAR: HTTP / Socket / Net. С помощью пакета HTTP вы можете легко отправлять запросы REST в область Basic Auth.

Для получения дополнительной информации: Как: сделать PHP REST-клиент для вызова ресурсов REST

0 голосов
/ 11 июня 2009

Нашел мой ответ в другом вопросе SO

function get_rex_xml($url)
{
    $curl = curl_init($url);
    curl_setopt_array($curl, array(CURLOPT_RETURNTRANSFER => TRUE,CURLOPT_USERPWD => 'username:password'));
    ob_start();
    $response_xml = curl_exec($curl);
    ob_end_clean();
    curl_close($curl);
    return $response_xml;
}

header('content-type:text/xml');
echo get_rex_xml('https://rexms.net:32005/rexwapi/common/timeframes');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...