Как получить заголовок ответа через casablanca?

wchar_t token[50];  
http_client client(L"https://example.com/dir/");
    http_request request;
    std::stringstream ReqBody;
    std::string ReqBodyS;

    ReqBody << "login=" << TB1T << "&pass=" << TB2T;
    ReqBodyS = ReqBody.str();

    request.set_body(ReqBodyS);
    request.set_method(methods::POST);
    request.headers().set_content_type(U("application/x-www-form-urlencoded"));

    client.request(request).then([](http_response response) {       
        if (response.status_code() == status_codes::OK)
        {
            //
        }
    });

Ответ нравится

Connection: keep-alive
Content-type: text/html
SomeHeader: something here

Как я могу добавить текст из заголовка с именем SomeHeader в токен? Я хочу получить текст токена из какого-то заголовка


person own2pwn    schedule 01.06.2015    source источник
comment
токен wchar_t[50]; мой плохой сри   -  person own2pwn    schedule 01.06.2015


Ответы (1)


Это старый пост, но я дам вам некоторую помощь, я полагаю, вы уже давно решили свою проблему, но если нет, или если у кого-то возникла такая же проблема, вот некоторые пояснения.

Если вы хотите получить заголовок запроса с помощью C++ Rest SDK, также известного как Casablanca:

У вас есть атрибут вашего заголовка с вашим токеном, по соглашению это «авторизация». Для получения вашего токена, просто базового примера, вам просто нужно сделать это:

auto authorization = utility::conversions::to_utf8string(request.headers()[header_names::authorization]);

Я написал auto для типа вашей переменной, но это может быть и std::string .

Теперь, если вы хотите добавить заголовок к вашему запросу, например, «авторизация», вы можете написать его как другой параметр заголовков. Вот пример:

http_response response;
response.set_status_code(200);
response.headers().add(U("Authorization"), U("your token"));

Надеюсь, это поможет вам и другим людям с похожими проблемами.

person Eric    schedule 18.11.2019