本文整理汇总了C++中HTTPResponse::end方法的典型用法代码示例。如果您正苦于以下问题:C++ HTTPResponse::end方法的具体用法?C++ HTTPResponse::end怎么用?C++ HTTPResponse::end使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTTPResponse
的用法示例。
在下文中一共展示了HTTPResponse::end方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: res
shared_ptr<FDSObjectMetadata> GalaxyFDSClient::parseMetadata(const HTTPResponse&
response) {
shared_ptr<FDSObjectMetadata> res(new FDSObjectMetadata());
for (HTTPResponse::ConstIterator iter = response.begin()
; iter != response.end(); ++iter) {
try {
res->add(iter->first, iter->second);
} catch(exception e) {
// Ignored
}
}
return res;
}
示例2: HTTPBasicCredentials
void
HTTPCredentials::authenticate(HTTPRequest& request, const HTTPResponse& response)
{
for (HTTPResponse::ConstIterator iter = response.find("WWW-Authenticate");
iter != response.end();
++iter)
{
if (isBasicCredentials(iter->second)) {
HTTPBasicCredentials(_digest.getUsername(), _digest.getPassword()).authenticate(request);
return;
} else if (isDigestCredentials(iter->second)) {
_digest.authenticate(request, HTTPAuthenticationParams(iter->second.substr(7)));
return;
}
}
}
示例3: checkCache
void NetPoco::checkCache(string headKey, string path, HTTPClientSession *session){
//Checks if a header-value pair is in the cache, if it is not its fetched from HTTP.
Poco::SharedPtr<pair<map<string,string>, string > > dataFromCache = clientCache->get(headKey);
this->httpRequest(HTTPRequest::HTTP_GET, session, path, headKey);
if(this->usingCached){
//Header is in cache Request data, check response expires/modified:
//cout << "usingCache!";
}else{
// get response
HTTPResponse res;
istream &is = session->receiveResponse(res);
// cache response
// consume response
//cout << "Got data from server" << endl;
string dataToCache;
// 304 = not modified since last request
if(res.getStatus()!= 304 && is){
cout << "Data from server was updated!" << "\n";
StreamCopier::copyToString(is, dataToCache);
}else{
dataToCache = this->clientCache->get(headKey)->second;
cout << "Data from server was not updated since last caching, falling back on cache and updating expires!" << "\n";
}
//cout << dataToCache << "\n";
map<string, string> headersMap;
string name;
string value;
NameValueCollection::ConstIterator i = res.begin();
while(i!=res.end()){
name=i->first;
value=i->second;
//cout << name << "=" << value << endl << endl << flush;
headersMap.insert(pair<string, string>(name, value));
++i;
}
pair<map<string,string>, string> pairToCache = make_pair(headersMap,dataToCache);
clientCache->add(headKey, pairToCache);
}
}
示例4: GetHeaderAndBodyNormalHttpSession
int GetHeaderAndBodyNormalHttpSession(std::string &url, std::string type)
{
try
{
//printf("Complete URL (%s)\n", url.c_str());
URI uri(url);
HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest request(HTTPRequest::HTTP_GET, uri.getPathAndQuery(), "HTTP/1.1");
// request.set("user-agent", "Poco HTTPClientSession");
//request.add("UDN-securelink", "true");
//request.add("X-client-token", "innermatch");
//request.add("X-seq-match", "seqtest1");
//Set session timeout to 10 minutes
//session.setTimeout(Poco::Timespan(1200L,0L));
session.sendRequest(request);
__sync_add_and_fetch(&(requestSent),1);
#if 0
Poco::Net::StreamSocket &str = session.socket();
str.setReceiveTimeout(Poco::Timespan(1200L,0L));
#endif
HTTPResponse response;
std::istream& rs = session.receiveResponse(response);
//printing response headers
#if 0
printf("\n\n\n");
cout << "RESPONSE HEADERS:" <<endl;
cout << response.getReason() <<endl;
cout << response.getStatus() <<endl;
cout << response.getVersion() <<endl;
#endif
if(response.getStatus() != 200)
{
printf("status is not 200 -- for(%s--%d) \n", url.c_str(), response.getStatus());
if(response.getStatus() == 400)
{
__sync_add_and_fetch(&(mo_400_response),1);
}
if(response.getStatus() == 500)
{
__sync_add_and_fetch(&(mo_500_response),1);
}
if(response.getStatus() == 503)
{
__sync_add_and_fetch(&(mo_503_response),1);
}
}
else
{
__sync_add_and_fetch(&(mo_200_response),1);
}
string name;
string lmtheader;
bool isLMTHeaderPresent = false;
string value;
NameValueCollection::ConstIterator i = response.begin();
while(i!=response.end())
{
name=i->first;
value=i->second;
if(name.compare("Last-Modified") == 0)
{
isLMTHeaderPresent = true;
//printf("Last Modified header:%s \n", value.c_str());
}
//cout << name << "=" << value << endl << flush;
++i;
}
if(!isLMTHeaderPresent)
{
__sync_add_and_fetch(&(noLMTHeaders),1);
printf("Last Modified header is not present (%s)\n", url.c_str());
}
#if 0
int ret;
remove("/home/MSD/POCO_LEARNING/poco_examples/pocossl/examples/vipin.mp4");
remove("/opt/universalcache/upload/.cache/*");
std::ofstream out("/home/MSD/POCO_LEARNING/poco_examples/pocossl/examples/vipin.mp4", std::ofstream::binary|std::ofstream::app);
//flush any previous ontent
//out.flush();
unsigned char ciphertext[INTERNAL_RSP_READ_BUFFER];
int totallength = 0;
while(!rs.eof())
{
rs.read ((char *)ciphertext, INTERNAL_RSP_READ_BUFFER);
int ciphertext_len = rs.gcount();
totallength +=ciphertext_len;
out.write ((char *)ciphertext,(size_t)ciphertext_len);
}
//printf("RECEIVED --------(%d) \n",totallength);
out.close();
#endif
}
catch (Exception& ex)
//.........这里部分代码省略.........