Laravel CURL -将字符串传递给HTTP URL (Postfields)



我使用Laravel 9和内置方法Http::withHeaders ($headers)->post($url, $data).

在$data变量中,我通过"&"传递由http_build_request产生的字符串。分隔符。但是Laravel试图用它来创建一个数组并发送数据。

API服务返回一个错误。请告诉我如何强制Laravel传递一个字符串(!),而不是一个数组?

我代码:

$array = [
'key1' => 'value1',
'key2' => 'value2',
// etc...
];
$headers = [
'Content-Type' => 'application/x-www-form-urlencoded',
'HMAC' => $hmac
];
$data = http_build_query($array, '', '&');
$response = Http::withHeaders($headers)->post($api_url, $data);
return json_decode($response->getBody()));

如果你将它作为x-www-form-urlencoded i gues发送,你应该能够在请求正文中传递数据。

$response = Http::withHeaders($headers)
->withBody($data)
->asForm()
->post($api_url);

然而,我不确定这是否会工作

你试过了吗,asForm

$response = Http::withHeaders($headers)->asForm()->post($api_url, $data);

如果你想使用application/x-www-form-urlencoded内容类型发送数据,你应该在发出请求之前调用asForm方法。

相关内容

  • 没有找到相关文章

最新更新