2013-04-13 1 views
3

Im использованием POCO C++ Net библиотеки для HTTPPoco C++ Net: Http получить заголовки из ответа

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

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

Итак, как я могу извлечь заголовок кэша из httpResponse?

Я видел, что вы можете сделать это в Java, getFirstHeader(), но как я могу это сделать в POCO C++ Ниже обычный HTTP GET-запрос с использованием ПОКО:

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; 

}

ответ

5

Итак, как я могу извлечь кэш час eader от httpResponse?

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

последний в пункте попробуйте выполнить следующие действия могут быть добавлены для распечатки заголовков на экран:

 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; 
     }