本文整理汇总了C++中QNetworkRequest::hasRawHeader方法的典型用法代码示例。如果您正苦于以下问题:C++ QNetworkRequest::hasRawHeader方法的具体用法?C++ QNetworkRequest::hasRawHeader怎么用?C++ QNetworkRequest::hasRawHeader使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QNetworkRequest
的用法示例。
在下文中一共展示了QNetworkRequest::hasRawHeader方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/**
* @brief Set the AWS custom date header.
*
* If \a request does not already contain an `x-amz-date` header, then this function
* will set a custom `x-amz-date` header to the value of \p dateTime formatted like
* "Fri, 09 Sep 2011 23:36:00 GMT".
*
* @param request The network request to add the date header to.
* @param dateTime The timestamp (in UTC) to set the date header's value to.
*/
void AwsSignatureV3Private::setDateHeader(QNetworkRequest &request, const QDateTime &dateTime) const
{
Q_ASSERT(dateTime.timeSpec() == Qt::UTC);
if (!request.hasRawHeader("x-amz-date")) {
request.setRawHeader("x-amz-date", dateTime.toString(QLatin1String("ddd, dd MMM yyyy hh:mm:ss 'GMT'")).toUtf8());
}
}
示例2: authorizationHeaderValue
/**
* @brief Set authorization header on a network request.
*
* This function will calculate the authorization header value and set it as the `Authorization`
* HTTP header on \p request.
*
* @param[in] credentials The AWS credentials to use to sign the request.
* @param[in] operation The HTTP method being used for the request.
* @param[in,out] request The network request to add the authorization header to.
* @param[in] payload Optional data being submitted in the request (eg for `PUT` and `POST` operations).
*
* @see http://docs.aws.amazon.com/general/latest/gr/sigV3-signed-request-examples.html
* @see authorizationHeaderValue
*/
void AwsSignatureV3Private::setAuthorizationHeader(const AwsAbstractCredentials &credentials,
const QNetworkAccessManager::Operation operation,
QNetworkRequest &request, const QByteArray &payload) const
{
Q_ASSERT(!request.hasRawHeader("Authorization"));
request.setRawHeader("Authorization", authorizationHeaderValue(credentials, operation, request, payload));
}
示例3: dispatchRequest
void DeleteJob::dispatchRequest(QNetworkAccessManager* accessManager, const QNetworkRequest& request, const QByteArray& data, const QString& contentType)
{
Q_UNUSED(data)
Q_UNUSED(contentType)
QNetworkRequest r = request;
if (!r.hasRawHeader("If-Match")) {
r.setRawHeader("If-Match", "*");
}
accessManager->deleteResource(r);
}
示例4: httpMethod
/**
* @brief Create an AWS V3 Signature canonical request.
*
* Note, this function implments both `AWS3` and `AWS3-HTTPS` variants of the
* AWS Signature version 3 - which are quite different.
*
* @param[in] operation The HTTP method being used for the request.
* @param[in] request The network request to generate a canonical request for.
* @param[in] payload Optional data being submitted in the request (eg for `PUT` and `POST` operations).
* @param[out] signedHeaders A semi-colon separated list of the names of all headers
* included in the result.
*
* @return An AWS V3 Signature canonical request.
*
* @see http://docs.aws.amazon.com/amazonswf/latest/developerguide/HMACAuth-swf.html (AWS3)
* @see http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RESTAuthentication.html (AWS3-HTTPS)
*/
QByteArray AwsSignatureV3Private::canonicalRequest(const QNetworkAccessManager::Operation operation,
const QNetworkRequest &request, const QByteArray &payload,
QByteArray * const signedHeaders) const
{
// AWS3-HTTPS
if (isHttps(request)) {
Q_ASSERT((request.hasRawHeader("x-amz-date")) || (request.hasRawHeader("Date")));
QByteArray canonicalRequest = request.rawHeader(request.hasRawHeader("x-amz-date") ? "x-amz-date" : "Date");
if (request.hasRawHeader("x-amz-nonce")) {
canonicalRequest += request.rawHeader("x-amz-nonce");
}
return canonicalRequest;
}
// AWS3
return httpMethod(operation).toUtf8() + '\n' +
canonicalPath(request.url()).toUtf8() + '\n' +
canonicalQuery(QUrlQuery(request.url())) + '\n' +
canonicalHeaders(request, signedHeaders) + '\n' +
payload;
}
示例5: toNetworkRequest
QNetworkRequest ResourceRequest::toNetworkRequest(QObject* originatingFrame) const
{
QNetworkRequest request;
request.setUrl(url());
request.setOriginatingObject(originatingFrame);
const HTTPHeaderMap &headers = httpHeaderFields();
for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end();
it != end; ++it) {
QByteArray name = QString(it->first).toAscii();
QByteArray value = QString(it->second).toAscii();
// QNetworkRequest::setRawHeader() would remove the header if the value is null
// Make sure to set an empty header instead of null header.
if (!value.isNull())
request.setRawHeader(name, value);
else
request.setRawHeader(name, "");
}
// Make sure we always have an Accept header; some sites require this to
// serve subresources
if (!request.hasRawHeader("Accept"))
request.setRawHeader("Accept", "*/*");
switch (cachePolicy()) {
case ReloadIgnoringCacheData:
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
break;
case ReturnCacheDataElseLoad:
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
break;
case ReturnCacheDataDontLoad:
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache);
break;
case UseProtocolCachePolicy:
// QNetworkRequest::PreferNetwork
default:
break;
}
if (!allowCookies() || !thirdPartyCookiePolicyPermitsForFrame(originatingFrame, url(), firstPartyForCookies())) {
request.setAttribute(QNetworkRequest::CookieSaveControlAttribute, QNetworkRequest::Manual);
request.setAttribute(QNetworkRequest::CookieLoadControlAttribute, QNetworkRequest::Manual);
}
if (!allowCookies())
request.setAttribute(QNetworkRequest::AuthenticationReuseAttribute, QNetworkRequest::Manual);
return request;
}
示例6:
/**
* @brief Set the AWS custom date header.
*
* This function will set a custom `x-amz-date` header to the value of \p dateTime
* formatted to AwsSignatureV4Private::DateTimeFormat.
*
* @note Although Amazon labels this as a "date", it is in fact a full timestamp.
*
* @param request The network request to add the date header to.
* @param dateTime The timestamp to set the date header's value to.
*
* @return \p dateTime verbatim (just a convenience for some callers).
*/
QDateTime AwsSignatureV4Private::setDateHeader(QNetworkRequest &request, const QDateTime &dateTime) const
{
Q_ASSERT(!request.hasRawHeader("x-amz-date"));
request.setRawHeader("x-amz-date", dateTime.toString(DateTimeFormat).toUtf8());
return dateTime;
}