[英]Guzzle Request : Post body data
我想POST
数据到远程AWS API。
数据应该是body
部分的JSON
。
使用 Postman,我可以发送数据并且一切正常:
现在,尝试使用GuzzleHttp\\Psr7\\Request
这样做,我正在做:
$request = new \GuzzleHttp\Psr7\Request(
'POST',
'AWS API URL',
['Host' => 'AWS HOST', 'body' => '{"json": "my JSON"}']
);
$request = $signer->signRequest($request, $credentials);
$response = $client->send($request);
请求成功,但没有数据更新! 好像没有收到'body'
。
我无权访问远程 API 日志文件。
所以我的问题是,这是在 Guzzle 请求的正文部分发布数据的正确方法吗?
谢谢。
根据链接的答案,您需要将以下选项与您的请求一起传递:
[GuzzleHttp\RequestOptions::JSON => ['key1' => 'value1', 'key2' => 'val2']]
或者:
['json' => ['key1' => 'value1', 'key2' => 'val2']]
但是由于您需要先构建 Request 对象,您应该能够将此选项作为Client::send
的第二个参数Client::send
:
$response = $client->send($request, [
GuzzleHttp\RequestOptions::JSON => ['key1' => 'value1', 'key2' => 'val2']
];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.