Поле заголовка 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";
0

Другие решения

Других решений пока нет …