Guzzle Post 使用 API 密钥不断导致 400 错误请求

Guzzle Post Using API Key Keeps Resulting in 400 Bad Request

我使用的是 Guzzle 6.3 版,我的请求有问题。我不断收到 400 Bad Request 错误,我不确定调试此错误的最佳方法或可能导致错误的原因。当我使用 Postman 进行设置时,相同的标准都可以正常工作。

$client = new GuzzleHttp\Client();
$body = $this->actionGenerateMessage();

try {
    $response = $client->post('the/endpoint',
        array(
            'body' => $body,
            'headers' => array(
                'apikey' => 'apikeyhere',
             )
        )
    );
} catch (RequestException $e) {
    var_dump($e->getResponse()->getBody()->getContent());
}

我能够让它工作。当我尝试发送 XML 消息时,ActiveMQ 设置似乎期待 JSON 消息。

我可以通过打开 Guzzle 调试标志来确定这一点。

$client = new GuzzleHttp\Client([
    'debug'           => true
]);

然后将 content-type 添加到 headers。

'headers' => array(
    'apikey' => 'apikeyhere',
    'Content-Type' => 'application/xml',
)

希望这对处于类似情况的人有所帮助。