Задать вопрос
@serjioms

Как отправить в заголовке `x-auth-user`: `username` средствами php?

Как эмулировать работу клиента, который будет обращаться к моему API. API запрос вида /api/?getdoc=123e123bn123ndp. По т.з. логин, md5 пароля передаются в заголовке и имеют вид:

x-auth-user: userName;
x-auth-pass: userPassword;

Как мне эмулировать работу клиента, т.е. отправить заголовки эти средствами php. Сейчас я делаю так:

echo "This is test controller
";
$data = file_get_contents("192.168.1.33/api/2.0?blabla=1111");
print_r($data);

Т.е. запрос передается, а заголовок с параметрами x-auth-user & x-auth-pass нет. Как это можно реализовать?
  • Вопрос задан
  • 3601 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@serjioms Автор вопроса
Всем спасибо, я реализовал так:

$opts = array(
            'http'=>array(
                'method'=>"GET",
                'header'=>"Accept-language: en\r\n" .
                    "x-auth-user: user\r\n" .
                    "x-auth-pass: password\r\n"
            )
        );

        $context = stream_context_create($opts);

        $result = file_get_contents('http://192.168.1.33/api/2.0', false, $context);

        print_r($result);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
shaks
@shaks
Както так, как сказал Денис Сафронов (я кстати знаю одного дениса сафронова, в черноморске живет.. ы ), для этого лучше использовать курл, вот пример небольшой.
try{
    $ch = curl_init('http://192.168.1.33/api/2.0?blabla=1111');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'x-auth-user: user',
        'x-auth-pass: pass'
    ));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $result = curl_exec($ch);
    if (curl_errno($ch))
        throw new Exception(curl_error($ch));
    echo($result);
}catch (Exception $e){
    echo($e->getMessage());
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы