Я использую 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());
}
да. Я использовал Postman для тестирования ранее, и все работает. Теперь пытаюсь внедрить в свое приложение и получаю ответ 400 Bad Request.
Затем вам нужно придумать, как продублировать то, что вы сделали в почтальоне. Использует ли он базовую аутентификацию? Какой-то дайджест заголовка auth? Каковы требования к авторизации API. Вам необходимо предоставить дополнительную информацию, если вы надеетесь получить помощь.
Я дублирую это, насколько я могу судить. Он использует конечную точку Apigee, которая подключается к Amazon Active MQ. Конечная точка Apigee настроена так, что мне нужно только отправить ключ API как часть заголовка, а затем сообщение. Поэтому я не уверен, правильно ли он отправляет информацию, и сервер возвращает неверный запрос, или мои настройки Guzzle не подходят для этого типа запроса.
400 ошибок происходит из-за ошибок в синтаксисе HTTP-запроса. Соответствует ли ваше тело типу содержимого? редактировать ниндзя от OP :)






Я смог заставить это работать. Похоже, что установка ActiveMQ ожидала сообщения JSON, когда я пытался отправить сообщение XML.
Я смог определить это, включив флаг отладки Guzzle.
$client = new GuzzleHttp\Client([
'debug' => true
]);
Затем добавляем тип содержимого в заголовки.
'headers' => array(
'apikey' => 'apikeyhere',
'Content-Type' => 'application/xml',
)
Надеюсь, это поможет кому-то в подобной лодке.
Вы проверили, что он работает, используя более простые средства, такие как
curl, из вашей оболочки или даже через приложение разработки REST, такое как Postman?