2013-04-13 2 views
3

임 사용 POCO C++ HTTP마시고 C++ 인터넷 : HTTP GET 헤더 응답

내가 지속적인 캐싱을위한 전략 만들기 시도 할

순 도서관 : 내가 얻을 필요가 있다고 생각합니다 모든

먼저 캐시 헤더에서 만료되고 캐시 된 값으로 교차 확인합니다 (잘못된 경우 알려주세요).

그래서 httpResponse에서 캐시 헤더를 추출 할 수 있습니까?

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

은 내가 어떻게 캐시 시간을 추출 할 수 있습니다 : 다음은 시도 절의 마지막 화면으로 헤더를 인쇄 추가 할 수 있습니다 httpResponse의 eader?

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

:

난 당신이 자바, getFirstHeader()에서이 작업을 수행 할 수 있다는 것을 본 적이

,하지만 난 POCO C에서 어떻게해야합니까 ++는 다음 POCO를 사용하여 일반 HTTP GET 요청입니다 그래서

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