如何使用 Guzzle 以 JSON 格式发送 POST 请求?

2022-08-30 06:16:46

有谁知道JSON使用的正确方法吗?postGuzzle

$request = $this->client->post(self::URL_REGISTER,array(
                'content-type' => 'application/json'
        ),array(json_encode($_POST)));

我收到来自服务器的响应。它使用Chrome工作。internal server errorPostman


答案 1

对于 Guzzle 5、6 和 7,你这样做是这样的:

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('url', [
    GuzzleHttp\RequestOptions::JSON => ['foo' => 'bar'] // or 'json' => [...]
]);

文档


答案 2

简单而基本的方式(guzzle6):

$client = new Client([
    'headers' => [ 'Content-Type' => 'application/json' ]
]);

$response = $client->post('http://api.com/CheckItOutNow',
    ['body' => json_encode(
        [
            'hello' => 'World'
        ]
    )]
);

为了获取响应状态代码和正文的内容,我这样做了:

echo '<pre>' . var_export($response->getStatusCode(), true) . '</pre>';
echo '<pre>' . var_export($response->getBody()->getContents(), true) . '</pre>';

推荐