Поле заголовка HTTP не распознано
Я пытаюсь использовать boost::beast для связи по HTTP с сервером.
Я работаю на стороне клиента и хочу отправить запрос, содержащий как минимум следующее поле заголовка: "X-API-SIGNATURE".
Я создаю запрос следующим образом:
http::request<http::dynamic_body> request;
request.version(11);
request.method(http::verb::get);
request.target("/test");
request.set(http::field::host, host_);
request.set("X-API-KEY", key_);
request.set("X-API-SIGNATURE", signature_);
int count_Header_Field_X_API_SIGNATUR = request.count("X-API-SIGNATURE"); // This is 1.
int count_Header_Field_X_API_Bla = request.count("X-API-BLA"); // This is 0.
Я отправляю запрос следующим образом:
boost::beast::http::async_write(
*socket_,
request,
std::bind(
&Testclass::on_write,
shared_from_this(),
std::placeholders::_1,
std::placeholders::_2));
}
После этого я получаю ответ от сервера, сообщающий мне об ошибке:
{"errors":[{"message":"Missing header: X-API-SIGNATURE","code":1,"field":"X-API-SIGNATURE"}],"credits":8}
Я не понимаю, почему Сервер не распознал поле заголовка "X-API-SIGNATURE", которое я вставил в Запрос раньше.
Что я делаю не так?
1 ответ
Обновление: похоже, что вы делаете все правильно в соответствии с протоколом HTTP, но есть что-то конкретное для вашего запроса, что сервер не любит
Какова стоимость signature_
?
Каков вывод следующего утверждения?
std::cout << request["X-Api-Signature"] << "\n";