Как получить заголовки ответа HTTP после запроса POST в PHP? - PullRequest
2 голосов
/ 30 июня 2011

Я хочу знать, возможно ли прочитать / проанализировать заголовок ответа HTTP после запроса POST в PHP без использования cURL ..

У меня PHP 5 под IIS7 Код, который я использую для POST:: -

$url="http://www.google.com/accounts/ClientLogin";
$postdata = http_build_query(
    array(
        'accountType' => 'GOOGLE',
        'Email' => 'xxxxx@gmail.com',
        'Passwd' => 'xxxxxx',
        'service' => 'fusiontables',
        'source' => 'fusiontables query'
    )
);
$opts = array('http' =>
    array(
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'method'  => 'POST',
        'content' => $postdata
    )
);
$context  = stream_context_create($opts);
$result = file_get_contents($url, false, $context);

Выше я делаю простую аутентификацию ClientLogin в Google, и я хочу получить токен Auth, который возвращается в заголовке.Вывод $ result дает только содержимое тела, а не заголовки, которые содержат данные токена авторизации.

Ответы [ 2 ]

1 голос
/ 19 ноября 2013

Используйте параметр контекста ignore_errors ( документация ):

$opts = array('http' =>
    array(
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'method'  => 'POST',
        'content' => $postdata,
        'ignore_errors' => true,
    )
);

Также, возможно, используйте fopen вместо file_get_contents.Затем вы можете позвонить stream_get_meta_data($fp), чтобы получить заголовки, см. Пример # 2 по вышеуказанной ссылке.

1 голос
/ 30 июня 2011

Функция get_headers () может быть той, которую вы ищете.

http://php.net/manual/en/function.get-headers.php

...