Параметры Laravel Guzzle

Из документов API у меня есть этот запрос curl:

curl https://api.example.com/api/Jwt/Token ^
        -d Username="asd%40gmail.com" ^
        -d Password="abcd1234"

Теперь я пытаюсь создать этот запрос в Laravel 5.1, используя библиотеку Guzzle, поэтому я написал:

 public function test()
    {

$client = new GuzzleHttp\Client();

$res = $client->createRequest('POST','https://api.example.com/api/Jwt/Token', [

    'form_params' => [
        'Username' => 'asd%40gmail.com',
        'Password' => 'abcd1234'
]
            ]);

$res = json_decode($res->getBody()->getContents(), true);

dd ($res);
}

Но я получаю эту ошибку:

***ErrorException in Client.php line 126:
Argument 3 passed to GuzzleHttp\Client::request() must be of the type array,     string given, called in     /home/ibook/public_html/vendor/guzzlehttp/guzzle/src/Client.php on line 87 and defined***

В чем проблема и как решить эту ошибку?

p.s. я тоже пробовал

$res = $client->createRequest('POST','https://api.example.com/api/Jwt/Token', 

    'form_params' => [
        'Username' => 'asd%40gmail.com',
        'Password' => 'abcd1234'

            ]);

Но потом я получаю:

syntax error, unexpected '=>' (T_DOUBLE_ARROW)

person Aleks Per    schedule 28.05.2017    source источник


Ответы (1)


Вы вызываете функцию createRequest вместо request. Это должно работать:

$response = $client->request('POST', 'https://api.example.com/api/Jwt/Token', [
    'form_params' => [
        'Username' => 'asd%40gmail.com',
        'Password' => 'abcd1234'
    ]
]);

Ознакомьтесь с документацией.

person Mozammil    schedule 28.05.2017