nepster-web
@nepster-web

Как сделать get запрос с помощью Guzzle?

Работаю с библиотекой https://github.com/guzzle/guzzle, а точнее знакомлюсь.
Ситуация такова:
Есть api, к которому пишется клиент на php. Для отправки методов я и выбрал эту библиотеку. Мне нужно отправить пост запрос, получить токен доступа и затем уже работать с ним, отправляя гет запросы.

Отправляю пост запрос:
$client = new \GuzzleHttp\Client();
            $response = $client->request('POST', 'http://api.site.com/oauth2/user', [
                'form_params' => [
                    'username' => '***',
                    'password' => '***',
                ]
            ]);


Тут все хорошо, все работает. Получаю токен.

Дальше проблема в гет запросе:
$client = new \GuzzleHttp\Client();

            $response = $client->request('GET', 'http://api.site.com/v1/groups', [
               // 'form_params' => [
                    'access_token' => $token,
               // ]
            ]);


Дело в том, что параметр access_token не летит на сервер. Тоесть такой вариант записи не работает.

Но работает вот такой вариант:

$client = new \GuzzleHttp\Client();
            $response = $client->request('GET', 'http://api.site.com/v1/groups?access_token=' . $token);


Подскажите пожалуйста в чем проблема, поему не работает передача параметров в массиве ?
  • Вопрос задан
  • 4279 просмотров
Решения вопроса 3
DevMan
@DevMan
все написано в доках, но бежать нужно на тостер.
Ответ написан
Для get параметров нужно использовать свойство query.
Ответ написан
Комментировать
DexterHD
@DexterHD
Software Engineer, Teamlead, CTO
Такова спецификация протокола HTTP. При испоьзовании метода GET, параметры запроса передаются в строке запроса. В случае с POST, параметры передаются в теле запроса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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