枪口请求:发布正文数据

问题描述 投票:0回答:1

我正在尝试将数据POST发送到远程AWS API。

数据应该是JSON部分上的body

使用邮递员,我可以发送数据,并且一切正常:

enter image description here

现在,尝试使用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请求的正文部分中发布数据的正确方法吗?

谢谢。

php request http-post guzzle
1个回答
0
投票

根据链接的答案,您需要在请求中传递以下选项:

[GuzzleHttp\RequestOptions::JSON => ['key1' => 'value1', 'key2' => 'val2']] 

或:

['json' => ['key1' => 'value1', 'key2' => 'val2']]

但是由于您需要首先构建Request对象,因此您应该能够将此选项作为Client::send的第二个参数传递:

Client::send
© www.soinside.com 2019 - 2024. All rights reserved.