当前位置: 首页 > 知识库问答 >
问题:

Laravel中的Guzzlephp:发送带有表单数据参数的帖子请求,如邮递员表单数据

冀阳文
2023-03-14

我想通过post请求将数据发送到API。对于postman,这个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文档,这个配置用于应用程序/x-www-form-urlencoded发送参数,但我需要一个用于表单数据发送参数的配置

发送application/x-www-form-urlencoded POST请求需要

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

共有1个答案

穆鸿卓
2023-03-14

应该是的

$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)包装到另一个数组中。

 类似资料:
  • 我对邮递员有意见... 但是,当我尝试以 raw(json) 格式的正文发送相同的请求时,我得到了这个: 我试图通过Angular 5将数据发送到Drupal 8后端。 谢谢你!

  • 我有下面的代码(谷歌的凌空库)向我的php服务器发送POST请求并获取信息。我没有在php中检查isset($\u POST['id')就尝试了代码,代码运行良好。当我开始检查时,php将跳过if语句并转到else,这意味着代码没有正确发送参数。我怎样才能解决这个问题? 我还尝试了以下代码: 但是我仍然得到同样的结果。

  • axios请求点击控制器上的url,但将空值设置到POJO类中,当我使用chrome中的开发人员工具时,有效负载包含数据。我做错了什么? Axios POST请求: 浏览器响应: 过帐多部分/表单数据时出错。Content-Type标头缺少边界 谁能解释一下如何设置边界或者我如何使用Axios发送表单数据。

  • 如何用Python发送带有请求的?如何发送一个文件,我明白,但如何发送表单数据的方法不能理解。

  • 问题内容: 我有如下代码: 如何为此设置标题?我需要用户代理,内容类型以及标题中可能包含的其他内容: 我已经尝试了多种方式,但是我可以发送标头或表单数据,但均不能发送。 问题答案: 我终于设法做到了。在下面的代码段中回答:

  • 我想使用表单urlencoded参数制作POST JSONObjectRequest。我该怎么做?我尝试了以下代码,但无济于事。 我在api调用中收到了一个400错误的请求!我如何修复它?