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 | QNetworkRequest與QNetworkReply的屬性碼。 用於控制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"));