繁体   English   中英

Guzzle 请求:发布身体数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM