在 laravel 中使用 GuzzleHttp 发送原始空 json
Posted
技术标签:
【中文标题】在 laravel 中使用 GuzzleHttp 发送原始空 json【英文标题】:send raw empty json with GuzzleHttp in laravel 【发布时间】: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"
那么,我现在该怎么做呢?
【问题讨论】:
【参考方案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' => '' ]);
吗?
太棒了!我会更新我的答案以适合你:)以上是关于在 laravel 中使用 GuzzleHttp 发送原始空 json的主要内容,如果未能解决你的问题,请参考以下文章
为啥 GuzzleHttp 客户端在 Laravel/Lumen 上使用它发出网络请求时会抛出 ClientException?
GuzzleHttp Laravel - 无法解析主机:myapplication.dev
laravel 类 'GuzzleHttp\Client' 未找到