本文整理汇总了C++中HTTPResponse::getHeadersAsConfig方法的典型用法代码示例。如果您正苦于以下问题:C++ HTTPResponse::getHeadersAsConfig方法的具体用法?C++ HTTPResponse::getHeadersAsConfig怎么用?C++ HTTPResponse::getHeadersAsConfig使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTTPResponse
的用法示例。
在下文中一共展示了HTTPResponse::getHeadersAsConfig方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
ReadResult
HTTPClient::doReadString(const std::string& location,
const osgDB::Options* options,
ProgressCallback* callback )
{
initialize();
ReadResult result;
HTTPResponse response = this->doGet( location, options, callback );
if ( response.isOK() )
{
result = ReadResult( new StringObject(response.getPartAsString(0)), response.getHeadersAsConfig());
}
else if ( response.getCode() >= 400 && response.getCode() < 500 && response.getCode() != 404 )
{
// for request errors, return an error result with the part data intact
// so the user can parse it as needed. We only do this for readString.
result = ReadResult(
ReadResult::RESULT_SERVER_ERROR,
new StringObject(response.getPartAsString(0)),
response.getHeadersAsConfig() );
}
else
{
result = ReadResult(
response.isCancelled() ? ReadResult::RESULT_CANCELED :
response.getCode() == HTTPResponse::NOT_FOUND ? ReadResult::RESULT_NOT_FOUND :
response.getCode() == HTTPResponse::SERVER_ERROR ? ReadResult::RESULT_SERVER_ERROR :
ReadResult::RESULT_UNKNOWN_ERROR );
//If we have an error but it's recoverable, like a server error or timeout then set the callback to retry.
if (HTTPClient::isRecoverable( result.code() ) )
{
if (callback)
{
OE_DEBUG << "Error in HTTPClient for " << location << " but it's recoverable" << std::endl;
callback->setNeedsRetry( true );
}
}
}
// last-modified (file time)
TimeStamp filetime = 0;
if ( CURLE_OK == curl_easy_getinfo(_curl_handle, CURLINFO_FILETIME, &filetime) )
{
result.setLastModifiedTime( filetime );
}
return result;
}
示例2: initialize
ReadResult
HTTPClient::doReadString(const std::string& location,
const osgDB::Options* options,
ProgressCallback* callback )
{
initialize();
ReadResult result;
HTTPResponse response = this->doGet( location, options, callback );
if ( response.isOK() )
{
result = ReadResult( new StringObject(response.getPartAsString(0)), response.getHeadersAsConfig());
}
else
{
result = ReadResult(
response.isCancelled() ? ReadResult::RESULT_CANCELED :
response.getCode() == HTTPResponse::NOT_FOUND ? ReadResult::RESULT_NOT_FOUND :
response.getCode() == HTTPResponse::SERVER_ERROR ? ReadResult::RESULT_SERVER_ERROR :
ReadResult::RESULT_UNKNOWN_ERROR );
//If we have an error but it's recoverable, like a server error or timeout then set the callback to retry.
if (HTTPClient::isRecoverable( result.code() ) )
{
if (callback)
{
OE_DEBUG << "Error in HTTPClient for " << location << " but it's recoverable" << std::endl;
callback->setNeedsRetry( true );
}
}
}
return result;
}
示例3: if
ReadResult
HTTPClient::doReadString(const HTTPRequest& request,
const osgDB::Options* options,
ProgressCallback* callback )
{
initialize();
ReadResult result;
HTTPResponse response = this->doGet( request, options, callback );
if ( response.isOK() )
{
result = ReadResult( new StringObject(response.getPartAsString(0)) );
}
else if ( response.getCode() >= 400 && response.getCode() < 500 && response.getCode() != 404 )
{
// for request errors, return an error result with the part data intact
// so the user can parse it as needed. We only do this for readString.
result = ReadResult(
ReadResult::RESULT_SERVER_ERROR,
new StringObject(response.getPartAsString(0)) );
}
else
{
result = ReadResult(
response.isCancelled() ? ReadResult::RESULT_CANCELED :
response.getCode() == HTTPResponse::NOT_FOUND ? ReadResult::RESULT_NOT_FOUND :
response.getCode() == HTTPResponse::SERVER_ERROR ? ReadResult::RESULT_SERVER_ERROR :
response.getCode() == HTTPResponse::NOT_MODIFIED ? ReadResult::RESULT_NOT_MODIFIED :
ReadResult::RESULT_UNKNOWN_ERROR );
//If we have an error but it's recoverable, like a server error or timeout then set the callback to retry.
if (HTTPClient::isRecoverable( result.code() ) )
{
if (callback)
{
if ( s_HTTP_DEBUG )
{
OE_NOTICE << LC << "Error in HTTPClient for " << request.getURL() << " but it's recoverable" << std::endl;
}
callback->setNeedsRetry( true );
}
}
}
// encode headers
result.setMetadata( response.getHeadersAsConfig() );
// last-modified (file time)
result.setLastModifiedTime( getCurlFileTime(_curl_handle) );
return result;
}
示例4: initialize
ReadResult
HTTPClient::doReadObject(const HTTPRequest& request,
const osgDB::Options* options,
ProgressCallback* callback)
{
initialize();
ReadResult result;
HTTPResponse response = this->doGet(request, options, callback);
if (response.isOK())
{
osgDB::ReaderWriter* reader = getReader(request.getURL(), response);
if (!reader)
{
result = ReadResult(ReadResult::RESULT_NO_READER);
}
else
{
osgDB::ReaderWriter::ReadResult rr = reader->readObject(response.getPartStream(0), options);
if ( rr.validObject() )
{
result = ReadResult(rr.takeObject());
}
else
{
if ( s_HTTP_DEBUG )
{
OE_WARN << LC << reader->className()
<< " failed to read object from " << request.getURL()
<< "; message = " << rr.message()
<< std::endl;
}
result = ReadResult(ReadResult::RESULT_READER_ERROR);
result.setErrorDetail( rr.message() );
}
}
// last-modified (file time)
result.setLastModifiedTime( getCurlFileTime(_curl_handle) );
}
else
{
result = ReadResult(
response.isCancelled() ? ReadResult::RESULT_CANCELED :
response.getCode() == HTTPResponse::NOT_FOUND ? ReadResult::RESULT_NOT_FOUND :
response.getCode() == HTTPResponse::SERVER_ERROR ? ReadResult::RESULT_SERVER_ERROR :
response.getCode() == HTTPResponse::NOT_MODIFIED ? ReadResult::RESULT_NOT_MODIFIED :
ReadResult::RESULT_UNKNOWN_ERROR );
//If we have an error but it's recoverable, like a server error or timeout then set the callback to retry.
if (HTTPClient::isRecoverable( result.code() ) )
{
if (callback)
{
if ( s_HTTP_DEBUG )
{
OE_NOTICE << LC << "Error in HTTPClient for " << request.getURL() << " but it's recoverable" << std::endl;
}
callback->setNeedsRetry( true );
}
}
}
result.setMetadata( response.getHeadersAsConfig() );
return result;
}
示例5: initialize
ReadResult
HTTPClient::doReadImage(const std::string& location,
const osgDB::Options* options,
ProgressCallback* callback)
{
initialize();
ReadResult result;
HTTPResponse response = this->doGet(location, options, callback);
if (response.isOK())
{
osgDB::ReaderWriter* reader = getReader(location, response);
if (!reader)
{
result = ReadResult(ReadResult::RESULT_NO_READER);
}
else
{
osgDB::ReaderWriter::ReadResult rr = reader->readImage(response.getPartStream(0), options);
if ( rr.validImage() )
{
result = ReadResult(rr.takeImage(), response.getHeadersAsConfig() );
}
else
{
if ( !rr.message().empty() )
{
OE_WARN << LC << "HTTP error: " << rr.message() << std::endl;
}
OE_WARN << LC << reader->className() << " failed to read image from " << location << std::endl;
result = ReadResult(ReadResult::RESULT_READER_ERROR);
}
}
// last-modified (file time)
TimeStamp filetime = 0;
if ( CURLE_OK == curl_easy_getinfo(_curl_handle, CURLINFO_FILETIME, &filetime) )
{
result.setLastModifiedTime( filetime );
}
}
else
{
result = ReadResult(
response.isCancelled() ? ReadResult::RESULT_CANCELED :
response.getCode() == HTTPResponse::NOT_FOUND ? ReadResult::RESULT_NOT_FOUND :
response.getCode() == HTTPResponse::SERVER_ERROR ? ReadResult::RESULT_SERVER_ERROR :
ReadResult::RESULT_UNKNOWN_ERROR );
//If we have an error but it's recoverable, like a server error or timeout then set the callback to retry.
if (HTTPClient::isRecoverable( result.code() ) )
{
if (callback)
{
OE_DEBUG << "Error in HTTPClient for " << location << " but it's recoverable" << std::endl;
callback->setNeedsRetry( true );
}
}
}
// set the source name
if ( result.getImage() )
result.getImage()->setName( location );
return result;
}