Qt:QNetworkRequest


0、說明

QNetworkRequest類代表被QNetworkAccessManager發送的請求

QNetworkReuqest網絡訪問API的一部分,在其內部保留了在網絡上發送一個request的必要信息。它包含了一個URL和一些輔助信息,這些信息可以用於確定和修改一個request

1、模塊和加載項

Header: #include <QNetworkRequest>
qmake: QT += network
Since: Qt 4.4

2、構造

QNetworkRequest(QNetworkRequest other) 得到另一個Request的副本。
QNetworkRequest(QUrl url) 用要請求的URL構造一個Request。
QNetworkRequest() 構造一個空URL,其內容用各種setxxx()方法設置。

 經過測試,QNetworkRequest(QUrl url)容易出現異常,還是先構造一個空的Request,再用setUrl()設置URL為好。

3、靜態字段

類型

字段

說明

enum Attribute

QNetworkRequestQNetworkReply的屬性碼。

用於控制request的行為,從reply中傳送更多發往應用的信息。

CacheLoadControl Cache載入控制
KnownHeaders Header
LoadControl 載入控制
Priority 優先級
RedirectPolicy 重定向策略
TransferTimeoutConstant  傳輸超時時間

4、實例方法

返回值類型

方法

說明

QNetworkRequest &

bool

bool

operator=(QNetworkRequest other)

operator!=(QNetworkRequest other)

operator==(QNetworkRequest other)

賦值

判斷是否相等

 

QVariant attribute(QNetworkRequest::Attribute code, QVariant defaultValue = QVariant()) 返回與code關聯的attribute,如果該attribute未設置,則返回默認attribute。
bool hasRawHeader(QByteArray headerName) 如果原始首部headerName在Request中存在,則返回true
QVariant header(QNetworkRequest::KnownHeaders header) 返回首部對應的QVariant,如果不存在則返回QVariant()
QHttp2Configuration http2Configuration() 返回當前QNetworkAccessManger用於該Request和HTTP/2連接的參數。
int maximumRedirectsAllowed() 最大重定向次數
QObject * originatingObject() 返回啟動了該Request的對象,不存在時返回nullptr
QString peerVerifyName() 返回證書驗證的host name
QNetworkRequest::Priority priority() 返回請求優先級
QByteArray rawHeader(QByteArray headerName) 返回該Request的原始首部對應的QByteArray。不存在時,hasRowHeader()返回false,並且該函數返回空QByteArray
QList<QByteArray> rawHeaderList() 返回該Request的所有原始首部的List。
void setAttribute(QNetworkRequest::Attribute code, QVariant value) 設置參數
setHeader(QNetworkRequest::KnownHeaders header, QVariant value) 設置Header 
setHttp2Configuration(QHttp2Configuration configuration) 設置HTTP/2參數
setMaximumRedirectsAllowed(int maxRedirectsAllowed) 設置最大重定向次數
setOriginatingObject(QObject *object) 設置啟動該Request的對象
setPeerVerifyName(QString peerName) 設置證書驗證的host name
setPriority(QNetworkRequest::Priority priority) 設置請求優先級
setRawHeader(QByteArray headerName, QByteArray headerValue)

設置header及其對應的value,例子

request.setRawHeader(QByteArray("Last-Modified"), QByteArray("Sun, 06 Nov 1994 08:49:37 GMT"));
setSslConfiguration(QSslConfiguration config) 設置SSL配置
setTransferTimeout(int timeout = DefaultTransferTimeoutConstant) 設置傳輸超時時間
setUrl(QUrl url) 設置該Reuqest的URL
QSslConfiguration sslConfiguration() 獲取該Request的SSL配置
void swap(QNetworkRequest &other) 交換兩個Request的值
int transferTimeout() 獲取傳輸超時時間
QUrl url() 獲取Request的URL

5、常用

1)構造一個空Request,為它指定URL:

QNetworkRequest request;
request.setUrl(QUrl("Url_String"));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM