【问题标题】:send raw empty json with GuzzleHttp in laravel在 laravel 中使用 GuzzleHttp 发送原始空 json
【发布时间】:2020-01-05 18:56:48
【问题描述】:

我的解决方案很简单,但老实说花了将近 5 个小时,仍然没有找到我的答案。 我需要使用Post 发送请求并检索我的数据。 使用 POSTMAN 就可以了。

这里是我的代码

use GuzzleHttp\Client;

 $client =new Client();

     $client->post($url,[
            'form_params' => [
              '{}'
            ]
        ]);

使用POSTMAN,我不需要设置Header,我只需要发送{}

得到这个错误:

Client error: `POST http://URL` resulted in a `400 
Bad Request` response: {"error":"Failed when parsing body as json"}

那么,我现在该怎么做呢?

【问题讨论】:

    标签: php json laravel post guzzle


    【解决方案1】:

    我认为你可以做到

    $client->post($url,[
        'parameter_one' => $value1,
        'param_two' => $value2,
    ]);
    

    不确定如何传递对象,如果你愿意的话,我认为你可以传递带有数据作为第二个参数或对象数组的 PHP 对象..

    【讨论】:

    • 首先感谢您的回答。是的,我可以像你说的那样发送参数,但在这个特定的 api 中,我只需要发送 {} 而不需要其他任何东西。
    【解决方案2】:

    您似乎想在没有 application/x-www-form-urlencoded 的情况下发送 POST 数据,这是使用“form_params”自动添加的内容

    如果你想这样做,你应该做一些更类似于以下的事情:

    use GuzzleHttp\Client;
    $client = new Client();
    $response = $client->post($url, [
        'body' => '{}'
    ]);
    

    【讨论】:

    • 烦人!也许它根本不需要 application/json!你可以试试$response = $client->post($url, [ 'body' => '{}' ]); 吗?
    • 太棒了!我会更新我的答案以适合你:)
    猜你喜欢
    • 1970-01-01
    • 2018-10-05
    • 2015-12-06
    • 2017-08-28
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    相关资源
    最近更新 更多