我现在已经在代码段中挣扎了好几天,我想知道是否有人可以帮助我理解该代码段。我不要求任何代码,请有人向我解释一下:(一个uri似乎是服务的完整URL)
void RestClient::_prepareRequest( QNetworkRequest& a_request, const QString& a_uri ){
QSslConfiguration config(QSslConfiguration::defaultConfiguration());
config.setProtocol(QSsl::SslV3);
config.setSslOption(QSsl::SslOptionDisableServerNameIndication, true);
a_request.setSslConfiguration(config);
a_request.setRawHeader("Accept", "application/xml");
a_request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
QByteArray l_api_key; l_api_key.append( toQString( m_api_key) );
QByteArray l_request_hash;
l_request_hash.append( toQString( _buildRequestHash( toStlString(a_uri) ) ) );
a_request.setRawHeader("EMApikey", l_api_key );
a_request.setRawHeader("EMRequestHash", l_request_hash );
a_request.setUrl( QUrl( a_uri ) );
}
因此,您所拥有的函数带有两个参数,即您要访问的URIQNetworkRequest
的QString
对a的引用和对a的常量引用。接下来的几行设置QSslConfiguration
为获取Qt网络访问的默认SSL配置,并将其存储在config中。然后,它会设置一些其他QSsl
选项,然后设置刚才设置a_request
的SSL设置config
。
接下来,它为请求设置了一些HTTP标头,因此这些标头经过了合理的标准化,因此Accept
可以引用服务器可接受的信息(在这种情况下为xml
(接受标头文档))。该Content-type
通知类型的数据你在请求主体内容发送接收服务器。
最后阶段设置一个非标准的HTTP标头,该标头用于应用程序API访问密钥,此后它设置您最初传递的URL,并且功能已完成。之后,QNetworkRequest
可以使用QNetworkAccessManager
来将请求发送到服务器,并使用已编码的API密钥,然后您将收到XML响应。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句