guzzlephp в Laravel: отправьте почтовый запрос с параметрами данных формы, такими как данные почтальона - PullRequest
0 голосов
/ 16 октября 2019

Я хочу отправить данные с постом Request в API. С почтальоном этот API работал только тогда, когда я устанавливал параметры как данные формы в теле, как на картинке

enter image description here

Это мой код

     $params = array(
        'From ' => 'THR',
        'To' => 'KIH',
        'Date' => '2019/09/17' ,
        'AdultCount' => '1' ,
        'ChildCount' => '0',
        'InfantCount' => '0',
        'ApiSiteID' =>  '198-10001-1-10' ,
        'UserID' =>  '3df91-s77' ,
    );
    $client = new Client(['base_uri' => 'http://something.site.ir/api/FlightReservationApi/'] );
      $response = $client->request('POST', 'SearchFlightData' ,
        [      'form_params' => [  $params] ] );

    $body= $response->getBody();
    $remainingBytes = $body->getContents();
    dd($remainingBytes);

Но это не сработало для меня. я использую все параметры (json, form_params, body), и ни один из них не работает для меня

Я использую laravel 5.4 и guzzle 6.3

Согласно документу guzzlephp этот конфиг для application / x-www-form-urlencoded отправка параметров, но мне нужна конфигурация для form-data отправка параметров

Отправка приложения / x-www-POST-запросы с форм-urlen-кодом требуют, чтобы вы> указали поля POST в виде массива в параметрах запроса form_params.

$response = $client->request('POST', 'http://httpbin.org/post', [
    'form_params' => [
        'field_name' => 'abc',
        'other_field' => '123',
        'nested_field' => [
            'nested' => 'hello'
        ]
    ]
]);
...