【问题标题】:How to make a GuzzleHttp post request with body and header?如何使用正文和标头制作 GuzzleHttp 发布请求?
【发布时间】:2021-07-23 19:46:20
【问题描述】:

我无法理解如何将此 cURL 修改为 Laravel 5.8,得到 {"code":"11", "message":"invalid Request found", "status":"DECLINED"} 响应。

这是我的cURL 代码,运行良好(在邮递员和浏览器中):

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.hylo.biz/Api/v1.0/Payment',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => '{
       "orderId":"KJDHKSGIU768",
       "amount":"100",
       "redirect_url":"google.com"
    }',
    CURLOPT_HTTPHEADER => [
        'Authorization: Basic WUR1pYQ1hYY3U2Og2OGM6JJE5tWEDJhJDEwZReVE=',
        'Content-Type: application/json',
    ],
]);
$response = curl_exec($curl);
curl_close($curl);

echo $response;

这是我的 laravel 代码:

public function process(Request $request)
{
    // return $request['request'];
    $client = new \GuzzleHttp\Client();
    $url = "https://api.hylo.biz/Api/v1.0/Payment";
    $response = $client->request('POST', $url, [
        'headers' => [
            'Authorization' => 'Basic WUR1pYQ1hYY3U2Og2OGM6JJE5tWEDJhJDEwZReVE=',
            'Content-Type'  => 'application/json'
         ],
         'form_params' => $request['request']
    ]);

    return $response = $response->getBody();
}

【问题讨论】:

  • 如何在 laravel 代码中发送 POST 表单数据? ,为什么不直接在你的 laravel 应用程序中使用你的 PHP curl 代码
  • 是的,但我想使用 GuzzleHttp 你能帮我解决这个问题吗@Mahdimehrabi 谢谢...

标签: php laravel curl


【解决方案1】:

这样就可以了

public function process(Request $request)
{
    $curl = curl_init();
    curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.hylo.biz/Api/v1.0/Payment',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => '{
      "orderId":"KJDHKSGIU768",
      "amount":"100",
      "redirect_url":"google.com"
    }',
    CURLOPT_HTTPHEADER => [
       'Authorization: Basic WUR1pYQ1hYY3U2Og2OGM6JJE5tWEDJhJDEwZReVE=',
       'Content-Type: application/json',
      ],
    ]);
    $response = curl_exec($curl);
    curl_close($curl);
}

我也忘了加use Illuminate\Http\Request;

【讨论】:

    猜你喜欢
    • 2015-05-08
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2020-08-16
    相关资源
    最近更新 更多