php - Guzzle 请求:发布正文数据
问题描述
我正在尝试将POST
数据传输到远程 AWS API。
数据应该是JSON
关于body
部分的。
使用 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
:
$response = $client->send($request, [
GuzzleHttp\RequestOptions::JSON => ['key1' => 'value1', 'key2' => 'val2']
];
推荐阅读
- ajax - 注册后laravel中的错误302
- scala - 函数转换字符串列表中的数字列表 scala
- c# - 返回 windows 桌面 MonoGame 时的错误
- html - 使图像适合 CSS Grid
- node.js - 在特定日期删除 mongodb 子文档
- python - 我的标点符号和字符的情节只是没有出现。需要建议
- python - 如何在 python 中对多个分类特征进行一次热编码,而不会被困在虚拟变量中
- javascript - 如何存储和访问元素上的数据属性,例如 React 中的选择选项
- c++ - const 引用是否绑定到另一个从临时悬空引用投射的引用?
- python - 无法在 Ubuntu 中安装正则表达式