【问题标题】:Convert cURL request to Guzzle Request using Laravel使用 Laravel 将 cURL 请求转换为 Guzzle 请求
【发布时间】:2019-12-17 06:17:26
【问题描述】:

我没有尝试将 cUrl Request 与 API 一起使用并将其转换为 Guzzle HTTP。

我需要将此 cUrl 转换为有效的 guzzle http post 请求以尝试 API

curl -X POST
"https://urltosendblahblah" -H "Content-Type: application/json" -d
{
    "outboundRewardRequest" : {
        "app_id" : "B54z9Ug55zLh5rTGRT5g6hq64pGUq6ap",
        "app_secret" : "f6554137d08f5607a696cd40741993758c411af3bb5f6c230270ec26e8d54126",
        "rewards_token" : "I7SkxKYid_F_p-JSgTejow",
        "address" : "9271051129",
        "promo" : "LOAD 50"
    }
}

目前我已使用 Guzzle Http 完成此操作,但收到 500 响应

public function loadSample(){
    $url = "";

    $request = $this->client->post($url, [
        'verify'=>false,
        'outboundRewardRequest' => [
            'app_id'=>'',
            'app_secret'=> '',
            'rewards_token'=>'==',
            'address'=>'',
            'promo'=>''
        ]
    ]);
    $response = $request->getBody();
    dd($response);

}

谢谢!

【问题讨论】:

    标签: php laravel curl


    【解决方案1】:
    $request = $this->client->post($url, [
        'headers' => [
            'verify' => false
        ],
        'form_params' => ['outboundRewardRequest' => [
            'app_id'=>'',
            'app_secret'=> '',
            'rewards_token'=>'==',
            'address'=>'',
            'promo'=>''
        ]],
          'debug' => false,
    ]);
    

    在使用 guzzle 时尝试这种方法。您的 body 参数必须是 form_params 数组的一部分。

    您还可以将 guzzle 调试设置为 false,这样您就不会遇到任何问题。

    【讨论】:

      【解决方案2】:

      请求正文的预期键是bodysource。所以尝试将outboundRewardRequest 更改为body

      【讨论】:

        【解决方案3】:

        根据接收方式将您的数据放入json 属性或form_params

        public function loadSample(){
            $url = "";
        
            $request = $this->client->post($url, [
                'verify'=>false,
                'json' => [
                    'outboundRewardRequest' => [
                        'app_id'=>'',
                        'app_secret'=> '',
                        'rewards_token'=>'==',
                        'address'=>'',
                        'promo'=>''
                    ]
                ]
            ]);
            $response = $request->getBody();
            dd($response);
        }
        

        【讨论】:

          猜你喜欢
          • 2017-01-13
          • 2017-04-04
          • 2015-11-02
          • 2021-11-30
          • 2015-02-13
          • 2018-04-16
          • 2021-02-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多