2013-04-13 59 views
3

進出口使用POCO C++的HTTP波科C++網:HTTP GET頭從響應

我想嘗試做持久緩存策略網庫:

所有我想我需要得到的第一從緩存標題過期並與緩存值進行交叉檢查(請告訴我,如果我的錯誤)。

那麼如何從httpResponse中提取緩存頭?

我已經看到了你可以在Java中,getFirstHeader()做到這一點,但我要如何做,在POCO C++下面是一個使用POCO普通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

所以,我怎麼能提取緩存^ h eader來自httpResponse?

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

最後以下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; 
     }