Cam*_*ott 6 php json laravel guzzle postman
在我的Laravel应用程序中,我经常需要使用Guzzle将数据POST到API.
API用户使用承载令牌进行身份验证,并请求和接受原始json.为了测试,我使用Postman访问了API,一切都运行得非常好.
邮差标题:
Accept:application/json
Authorization:Bearer [token]
Content-Type:application/json
Run Code Online (Sandbox Code Playgroud)
和邮递员身体:
{
"request1" : "123456789",
"request2" : "2468",
"request3" : "987654321",
"name" : "John Doe"
}
Run Code Online (Sandbox Code Playgroud)
邮递员返回200,并返回JSON对象作为响应.
现在,当我尝试使用Guzzle时,我得到一个200状态代码,但没有返回JSON对象.这是我的Guzzle实现:
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',
]
]);
Run Code Online (Sandbox Code Playgroud)
使用Guzzle发布JSON有一些技巧吗?如果没有,有没有办法调试引擎盖下发生的事情?
在我的生活中,我不能理解Postman POST和Guzzle POST之间的区别.
您必须使用headers标头的配置部分,而不是根级别.
return new Client([
'base_uri' => env('API_HOST'),
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json',
],
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3201 次 |
| 最近记录: |