Новое в REST API - PullRequest
       11

Новое в REST API

6 голосов
/ 19 мая 2011

В основном мне было поручено создать приложение REST-запроса в PHP с использованием стороннего REST API.Выполнение POST, GET и т. Д. Кажется простым, однако у них есть нечто, называемое заголовком авторизации, в котором используется токен дайджеста.Как передать это через get?

EG:

$url = "http:/domain/core.xml";
$response = file_get_contents($url);
echo $response;

Возвраты: Дайджест аутентификационных заголовков не найден

В Firefox POSTER я бы просто добавил заголовок "Авторизация"со значением" Дайджест 0: код здесь "и все работает.

Ответы [ 3 ]

9 голосов
/ 19 мая 2011

См. file_get_contents ()

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )

Третий аргумент $context позволяет добавить контекст, созданный с помощью stream_context_create () .См. Параметры HTTP-контекста .Там вы можете найти опцию header, которая позволяет вам установить заголовки, которые будут использоваться при отправке запроса, в вашем случае Authorization -header

5 голосов
/ 19 мая 2011

Вы можете использовать curl для остальных звонков. Для вашей помощи это ссылка справки: токен авторизации с использованием curl

Что такое керл

3 голосов
/ 15 декабря 2011
<?php
$url ="http://example.com/target.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD,'username:password');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
?>

На стороне сервера (target.php) мы можем получить доступ к имени пользователя и паролю следующим образом.

$USERNAME = $_SERVER['PHP_AUTH_USER'];
$PASSWORD = $_SERVER['PHP_AUTH_PW'];

В некоторых случаях переменная $ _SERVER НЕ ДОСТУПНА ВАШЕМУ ЛОКАЛЬНОМУ СЕРВЕРУ.ПОЖАЛУЙСТА, ВСТАВЬТЕ СЛЕДУЮЩИЙ КОД В ВАШЕМ ДОСТУПЕ.МОДУЛЬ АВТОРИЗАЦИИ HTTP РАБОТАЕТ В PHP.ПРИЧИНА, ЧТО МЫ ДОЛЖНЫ УСТАНОВИТЬ ЭТО КАК ОТДЕЛЬНЫЙ МОДУЛЬ

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...