我想将带有后请求的数据发送到API。 对于邮递员,此API仅在我将参数设置为此类图片中的表单数据时有效
这是我的代码
$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和狂饮6.3
根据guzzlephp文档,此配置用于 application / x-www-form-urlencoded 发送参数,但是我需要配置用于 form-data 发送参数
发送application / x-www-form-urlencoded POST请求需要您>在form_params请求选项中将POST字段指定为数组。
$response = $client->request('POST', 'http://httpbin.org/post', [
'form_params' => [
'field_name' => 'abc',
'other_field' => '123',
'nested_field' => [
'nested' => 'hello'
]
]
]);
答案 0 :(得分:0)
应该是
$client = new Client(['base_uri' => 'http://something.site.ir/api/FlightReservationApi/'] );
$response = $client->request('POST', 'SearchFlightData' ,
[ 'form_params' => $params ] );
代替
$client = new Client(['base_uri' => 'http://something.site.ir/api/FlightReservationApi/'] );
$response = $client->request('POST', 'SearchFlightData' ,
[ 'form_params' => [ $params] ] );
实际上是将一个数组($ params)包裹在另一个数组中。