POST Request works with Postman, but not with Guzzle(POST 请求适用于 Postman,但不适用于 Guzzle)
问题描述
在我的 Laravel 应用程序中,我需要定期使用 Guzzle 将数据 POST 到 API.
In my Laravel application, I periodically need to POST data to an API using Guzzle.
API 使用不记名令牌进行身份验证,并请求和接受原始 json.为了测试,我使用 Postman 访问了 API,一切运行良好.
The API users a bearer token to authenticate, and requests and accepts raw json. To test, I accessed the API using Postman, and everything worked wonderfully.
邮递员标题:
Accept:application/json
Authorization:Bearer [token]
Content-Type:application/json
还有邮递员的身体:
{
"request1" : "123456789",
"request2" : "2468",
"request3" : "987654321",
"name" : "John Doe"
}
Postman 返回一个 200 和一个 JSON 对象作为响应.
Postman returns a 200, and a JSON object as a response.
现在,当我尝试使用 Guzzle 进行相同操作时,我得到一个 200 状态代码,但没有返回任何 JSON 对象.这是我的 Guzzle 实现:
Now, when I try the same with Guzzle, I get a 200 status code, but no JSON object gets returned. Here's my Guzzle implementation:
public function getClient($token)
{
return new Client([
'base_uri' => env('API_HOST'),
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
]);
}
$post = $client->request('POST', '/path/to/api', [
'json' => [
'request1' => 123456789,
'request2' => 2468,
'request3' => 987654321,
'name' => 'John Doe',
]
]);
使用 Guzzle 发布 JSON 有什么技巧吗?如果没有,有没有办法调试引擎盖下发生的事情?
Is there some trick to POSTing JSON with Guzzle? If not, is there a way to debug what's going on under the hood?
我这辈子都无法理解 Postman POST 和 Guzzle POST 之间的区别.
I cannot, for the life of me, understand what the difference is between the Postman POST and the Guzzle POST.
推荐答案
你必须使用 headers
配置部分作为标题,而不是根级别.
You have to use headers
config sections for headers, not the root level.
return new Client([
'base_uri' => env('API_HOST'),
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json',
],
]);
这篇关于POST 请求适用于 Postman,但不适用于 Guzzle的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:POST 请求适用于 Postman,但不适用于 Guzzle
基础教程推荐
- 超薄框架REST服务两次获得输出 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01