Poco c ++ Net: Http получить заголовки из ответа

Я использую POCO C ++ Net библиотеки для http

Я хочу попробовать разработать стратегию постоянного кэширования.

Прежде всего, я думаю, что мне нужно получить срок действия из заголовков кэша и перепроверить с кэшированными значениями (пожалуйста, скажите мне, если я ошибаюсь).

Так как же извлечь заголовок кэша из httpResponse?

Я видел, что вы можете сделать это на Java, (getFirstHeader()), но как мне это сделать в POCO C ++?

Ниже приведен обычный http GET-запрос с использованием POCO:

try
{
// prepare session
URI uri("http://www.google.se");
HTTPClientSession session(uri.getHost(), uri.getPort());

// prepare path
string path(uri.getPathAndQuery());
if (path.empty()) path = "/";

// send request
printnet(path.c_str());
HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1);
session.sendRequest(req);

// get response
printnet("Get response");

HTTPResponse res;
cout << res.getStatus() << " " << res.getReason() << endl;

// print response
istream &is = session.receiveResponse(res);
StreamCopier::copyStream(is, cout);
}
catch (Exception &ex)
{
printnet(ex.displayText().c_str());
return -1;
}
return 0;

3

Решение

Так как же извлечь заголовок кэша из httpResponse?

res.get("Cache-control");
5

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

Напоследок try Блок можно добавить следующее, чтобы распечатать заголовки на экране:

cout << "RESPONSE:";
string name;
string value;
NameValueCollection::ConstIterator i = res.begin();
while(i!=res.end()){

name=i->first;
value=i->second;
cout << name << "=" << value << endl << flush;
++i;
}
2

По вопросам рекламы [email protected]