<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # QHttp Class Reference ## [[QtNetwork](index.htm) module] 該QHttp類提供了HTTP協議的實現。[More...](#details) 繼承[QObject](qobject.html)。 ### Types * `enum ConnectionMode { ConnectionModeHttp, ConnectionModeHttps }` * `enum Error { NoError, UnknownError, HostNotFound, ConnectionRefused, ..., ProxyAuthenticationRequiredError }` * `enum State { Unconnected, HostLookup, Connecting, Sending, ..., Closing }` ### Methods * `__init__ (self, QObject?parent?=?None)` * `__init__ (self, QString?hostName, int?port?=?80, QObject?parent?=?None)` * `__init__ (self, QString?hostname, ConnectionMode?mode, int?port?=?0, QObject?parent?=?None)` * `abort (self)` * `int bytesAvailable (self)` * `clearPendingRequests (self)` * `int close (self)` * `QIODevice currentDestinationDevice (self)` * `int currentId (self)` * `QHttpRequestHeader currentRequest (self)` * `QIODevice currentSourceDevice (self)` * `Error error (self)` * `QString errorString (self)` * `int get (self, QString?path, QIODevice?to?=?None)` * `bool hasPendingRequests (self)` * `int head (self, QString?path)` * `ignoreSslErrors (self)` * `QHttpResponseHeader lastResponse (self)` * `int post (self, QString?path, QIODevice?data, QIODevice?to?=?None)` * `int post (self, QString?path, QByteArray?data, QIODevice?to?=?None)` * `str read (self, int?maxlen)` * `QByteArray readAll (self)` * `int request (self, QHttpRequestHeader?header, QIODevice?data?=?None, QIODevice?to?=?None)` * `int request (self, QHttpRequestHeader?header, QByteArray?data, QIODevice?to?=?None)` * `int setHost (self, QString?hostName, int?port?=?80)` * `int setHost (self, QString?hostname, ConnectionMode?mode, int?port?=?0)` * `int setProxy (self, QString?host, int?port, QString?user?=?QString(), QString?password?=?QString())` * `int setProxy (self, QNetworkProxy?proxy)` * `int setSocket (self, QTcpSocket?socket)` * `int setUser (self, QString?userName, QString?password?=?QString())` * `State state (self)` ### Qt Signals * `void authenticationRequired (const QString&,quint16,QAuthenticator *)` * `void dataReadProgress (int,int)` * `void dataSendProgress (int,int)` * `void done (bool)` * `void proxyAuthenticationRequired (const QNetworkProxy&,QAuthenticator *)` * `void readyRead (const QHttpResponseHeader&)` * `void requestFinished (int,bool)` * `void requestStarted (int)` * `void responseHeaderReceived (const QHttpResponseHeader&)` * `void sslErrors (const QList&lt;QSslError&gt;&)` * `void stateChanged (int)` * * * ## Detailed Description 該QHttp類提供了HTTP協議的實現。 這個類提供了一個直接接口的HTTP ,使您可以下載和上傳數據的HTTP協議。然而,對于新的應用程序,它是推薦使用[QNetworkAccessManager](qnetworkaccessmanager.html)和[QNetworkReply](qnetworkreply.html)作為這些類具有一個簡單,但更強大的API和更現代的協議實現。 類以異步方式工作,所以沒有阻擋功能。如果操作不能被立即執行,該函數將仍然返回直線距離,操作將被安排在以后執行。調度操作的結果通過信號報告。這種方法依賴于事件循環運行之中。 可以計劃的操作(他們被稱為在文檔其馀部分“請求” )如下:[setHost](qhttp.html#setHost)( )[get](qhttp.html#get)( )[post](qhttp.html#post)( )[head](qhttp.html#head)()和[request](qhttp.html#request)( ) 。 所有這些請求都返回一個唯一的標識符,可以讓你保持當前執行的請求的軌道。當一個請求的執行開始時,[requestStarted](qhttp.html#requestStarted)()信號與該標識符被發射并且當請求完成時,[requestFinished](qhttp.html#requestFinished)( )信號被發射的標識符和一個布爾值,表示如果有錯誤的要求完成。 為了使一個HTTP請求必須設置合適的HTTP標頭。下面的示例演示如何從Qt的網頁(即網址中要求主HTML頁面`http://qt.nokia.com/index.html`) : ``` [QHttpRequestHeader](qhttprequestheader.html) header("GET", [QUrl](qurl.html).toPercentEncoding("/index.html")); header.setValue("Host", "qt.nokia.com"); http->setHost("qt.nokia.com"); http->request(header); ``` 對于常見的HTTP請求`GET`,`POST`和`HEAD`, QHttp提供方便的功能[get](qhttp.html#get)( )[post](qhttp.html#post)()和[head](qhttp.html#head)( ) 。他們已經在使用一個合理的標題,如果你沒有設置特殊的頭字段,它們更容易使用。上面的例子中,也可以寫為: ``` http->setHost("qt.nokia.com"); // id == 1 http->get([QUrl](qurl.html).toPercentEncoding("/index.html")); // id == 2 ``` 在這個例子中的信號按以下順序發出(以小的變化,這取決于網絡的流量等) : ``` requestStarted(1) requestFinished(1, false) requestStarted(2) stateChanged(Connecting) stateChanged(Sending) dataSendProgress(77, 77) stateChanged(Reading) responseHeaderReceived(responseheader) dataReadProgress(5388, 0) readyRead(responseheader) dataReadProgress(18300, 0) readyRead(responseheader) stateChanged(Connected) requestFinished(2, false) done(false) stateChanged(Closing) stateChanged(Unconnected) ``` 該[dataSendProgress](qhttp.html#dataSendProgress)()和[dataReadProgress](qhttp.html#dataReadProgress)如果你想顯示( )在上面的例子中信號是一個非常有用[progress bar](qprogressbar.html)以通知用戶有關下載的進度。第二個參數是數據的總大小。在某些情況下這是不可能知道的總量提前,在這種情況下,第二個參數是0。 (如果您連接到一個[QProgressBar](qprogressbar.html)共0個結果在一個繁忙的指標。 ) 當響應標頭被讀出,有報導用[responseHeaderReceived](qhttp.html#responseHeaderReceived)()信號。 該[readyRead](qhttp.html#readyRead)( )信號告訴你,有數據準備好讀。的數據量然后可以查詢與[bytesAvailable](qhttp.html#bytesAvailable)()函數,它可以讀取與該[read](qhttp.html#read)()或[readAll](qhttp.html#readAll)()函數。 如果其中一個命令在命令序列的執行過程中發生了錯誤,所有掛起的命令(即預定的,但尚未執行的命令)被清零,并且沒有信號發射它們。 例如,如果你有要求的順序如下 ``` http->setHost("www.foo.bar"); // id == 1 http->get("/index.html"); // id == 2 http->post("register.html", data); // id == 3 ``` 和[get](qhttp.html#get)( )請求失敗,因為主機查找失敗,則[post](qhttp.html#post)()請求永遠不會執行,并且信號是這樣的: ``` requestStarted(1) requestFinished(1, false) requestStarted(2) stateChanged(HostLookup) requestFinished(2, true) done(true) stateChanged(Unconnected) ``` 然后,您可以獲取與錯誤的詳細信息[error](qhttp.html#error)()和[errorString](qhttp.html#errorString)()函數。請注意,只有想不到的行為,如網絡故障被認為是一個錯誤。如果服務器響應包含錯誤狀態,就像一個404響應,該報告為正常的反應情況。所以,你應該經常檢查[status code](qhttpresponseheader.html#statusCode)響應頭中。 該功能[currentId](qhttp.html#currentId)()和[currentRequest](qhttp.html#currentRequest)( )提供有關當前正在執行的請求的更多信息。 該功能[hasPendingRequests](qhttp.html#hasPendingRequests)()和[clearPendingRequests](qhttp.html#clearPendingRequests)()允許您查詢和清除掛起的請求列表。 * * * ## Type Documentation ``` QHttp.ConnectionMode ``` 此枚舉用于指定連接使用的方式: | Constant | Value | Description | | --- | --- | --- | | `QHttp.ConnectionModeHttp` | `0` | 該連接是一個普通的HTTP連接到服務器 | | `QHttp.ConnectionModeHttps` | `1` | HTTPS協議的使用和連接使用SSL加密。 | 當使用HTTPS模式中,應注意連接到sslErrors信號,并處理可能出現的SSL錯誤。 這個枚舉被引入或修改的Qt 4.3 。 **See also** [QSslSocket](qsslsocket.html)。 ``` QHttp.Error ``` 這個枚舉標識所發生的錯誤。 | Constant | Value | Description | | --- | --- | --- | | `QHttp.NoError` | `0` | 未發生錯誤。 | | `QHttp.HostNotFound` | `2` | 該主機名查找失敗。 | | `QHttp.ConnectionRefused` | `3` | 服務器拒絕連接。 | | `QHttp.UnexpectedClose` | `4` | 服務器關閉了連接意外。 | | `QHttp.InvalidResponseHeader` | `5` | 服務器發送一個無效的響應頭。 | | `QHttp.WrongContentLength` | `6` | 客戶端不能正確讀出的內容,因為發生相對于所述內容的長度的錯誤。 | | `QHttp.Aborted` | `7` | 該請求被中止與[abort](qhttp.html#abort)( ) 。 | | `QHttp.ProxyAuthenticationRequiredError` | `9` | [QHttp](qhttp.html)是使用代理,而代理服務器需要身份驗證來建立連接。 | | `QHttp.AuthenticationRequiredError` | `8` | 該網站的服務器要求身份驗證來完成請求。 | | `QHttp.UnknownError` | `1` | 發生錯誤比上述指定的。 | **See also** [error](qhttp.html#error)( ) 。 ``` QHttp.State ``` 此枚舉用于指定狀態的客戶端是: | Constant | Value | Description | | --- | --- | --- | | `QHttp.Unconnected` | `0` | 還有就是主機的連接。 | | `QHttp.HostLookup` | `1` | 主機名查找正在進行中。 | | `QHttp.Connecting` | `2` | 連接到主機的嘗試正在進行中。 | | `QHttp.Sending` | `3` | 客戶端發送的請求發送到服務器。 | | `QHttp.Reading` | `4` | 客戶端的請求已發送,并且客戶端讀取服務器的響應。 | | `QHttp.Connected` | `5` | 到主機的連接是打開的,但是客戶端既不是發送請求,也沒有等待響應。 | | `QHttp.Closing` | `6` | 連接被關閉了,但尚未關閉。 (該狀態將是`Unconnected`當連接關閉。 ) | **See also** [stateChanged](qhttp.html#stateChanged)()和[state](qhttp.html#state)( ) 。 * * * ## Method Documentation ``` QHttp.__init__ (self, QObject?parent?=?None) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 構造一個[QHttp](qhttp.html)對象。該_parent_參數被傳遞到[QObject](qobject.html)構造函數。 ``` QHttp.__init__ (self, QString?hostName, int?port?=?80, QObject?parent?=?None) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 構造一個[QHttp](qhttp.html)對象。后續請求都通過連接到服務器完成_hostName_端口_port_。 該_parent_參數被傳遞到[QObject](qobject.html)構造函數。 **See also** [setHost](qhttp.html#setHost)( ) 。 ``` QHttp.__init__ (self, QString?hostname, ConnectionMode?mode, int?port?=?0, QObject?parent?=?None) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 構造一個[QHttp](qhttp.html)對象。后續請求都通過連接到服務器完成_hostName_端口_port_使用連接模式_mode_。 如果端口為0 ,它會使用默認端口_mode_使用( 80用于HTTP和HTTPS使用443 ) 。 該_parent_參數被傳遞到[QObject](qobject.html)構造函數。 **See also** [setHost](qhttp.html#setHost)( ) 。 ``` QHttp.abort (self) ``` 這種方法也是一個Qt槽與C + +的簽名`void abort()`。 中止當前的請求,并刪除所有已計劃的請求。 對當前的請求,則[requestFinished](qhttp.html#requestFinished)()的信號與`error`爭論`true`射出。對于那些受中止( )所有其他請求,沒有信號發射。 由于這個插槽也刪除了預定的要求,沒有離開請求和[done](qhttp.html#done)()信號被發射(與`error`爭論`true`) 。 **See also** [clearPendingRequests](qhttp.html#clearPendingRequests)( ) 。 ``` int QHttp.bytesAvailable (self) ``` 返回可以從響應內容被讀取的時刻的字節數。 **See also** [get](qhttp.html#get)( )[post](qhttp.html#post)( )[request](qhttp.html#request)( )[readyRead](qhttp.html#readyRead)( )[read](qhttp.html#read)()和[readAll](qhttp.html#readAll)( ) 。 ``` QHttp.clearPendingRequests (self) ``` 刪除從原定的請求列表中的所有掛起的請求。這并不會影響正在執行該請求。如果你想停止這一點,使用[abort](qhttp.html#abort)( ) 。 **See also** [hasPendingRequests](qhttp.html#hasPendingRequests)()和[abort](qhttp.html#abort)( ) 。 ``` int QHttp.close (self) ``` 關閉連接,如果你有一個保持活動的連接,并希望將其關閉,這是很有用的。 對于發出的請求[get](qhttp.html#get)( )[post](qhttp.html#post)()和[head](qhttp.html#head)( )[QHttp](qhttp.html)設置連接要保持活動。您也可以使用您傳遞給頭做到這一點[request](qhttp.html#request)()函數。[QHttp](qhttp.html)只有關閉連接到HTTP服務器,如果響應頭要求它這樣做。 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 如果你想立即關閉連接,你必須使用[abort](qhttp.html#abort)( )來代替。 **See also** [stateChanged](qhttp.html#stateChanged)( )[abort](qhttp.html#abort)( )[requestStarted](qhttp.html#requestStarted)( )[requestFinished](qhttp.html#requestFinished)()和[done](qhttp.html#done)( ) 。 ``` QIODevice QHttp.currentDestinationDevice (self) ``` [](qiodevice.html) [返回](qiodevice.html)[QIODevice](qiodevice.html)指針,該指針被用作用于存儲正在執行的HTTP請求的數據。如果沒有當前請求或者請求不將數據存儲到一個IO設備,該函數返回0 。 此功能可用于刪除的[QIODevice](qiodevice.html)在連接到插槽[requestFinished](qhttp.html#requestFinished)()信號。 **See also** [currentSourceDevice](qhttp.html#currentSourceDevice)( )[get](qhttp.html#get)( )[post](qhttp.html#post)()和[request](qhttp.html#request)( ) 。 ``` int QHttp.currentId (self) ``` 返回正在執行的HTTP請求或標識符0 ,如果沒有請求被執行(即他們已經全部完成) 。 **See also** [currentRequest](qhttp.html#currentRequest)( ) 。 ``` QHttpRequestHeader QHttp.currentRequest (self) ``` [](qhttprequestheader.html) [返回正在執行的HTTP請求的請求頭。如果請求的是一個接發](qhttprequestheader.html)[setHost](qhttp.html#setHost)()或[close](qhttp.html#close)( ) ,它返回一個無效的請求頭,即[QHttpRequestHeader.isValid](qhttpheader.html#isValid)( )返回False 。 **See also** [currentId](qhttp.html#currentId)( ) 。 ``` QIODevice QHttp.currentSourceDevice (self) ``` [](qiodevice.html) [返回](qiodevice.html)[QIODevice](qiodevice.html)指針,該指針被用作要執行的HTTP請求的數據源。如果沒有當前請求或者請求不使用IO設備作為數據源,這個函數返回0 。 此功能可用于刪除的[QIODevice](qiodevice.html)在連接到插槽[requestFinished](qhttp.html#requestFinished)()信號。 **See also** [currentDestinationDevice](qhttp.html#currentDestinationDevice)( )[post](qhttp.html#post)()和[request](qhttp.html#request)( ) 。 ``` Error QHttp.error (self) ``` [](qhttp.html#Error-enum) [返回所發生的最后一個錯誤。接收時,此功能非常有用,找出發生了什么](qhttp.html#Error-enum)[requestFinished](qhttp.html#requestFinished)()或一[done](qhttp.html#done)()的信號與`error`爭論`true`。 如果你開始一個新的請求,錯誤狀態重置為`NoError`。 ``` QString QHttp.errorString (self) ``` 返回上次發生錯誤的人類可讀的描述。接收時,這是有用的,以呈現一個錯誤信息給用戶的[requestFinished](qhttp.html#requestFinished)()或一[done](qhttp.html#done)()的信號與`error`爭論`true`。 ``` int QHttp.get (self, QString?path, QIODevice?to?=?None) ``` 發送一個GET請求_path_通過設置服務器[setHost](qhttp.html#setHost)()或在構造函數中指定。 _path_必須像一個絕對路徑`/index.html`或者像一個絕對URI`http://example.com/index.html`并且必須與任一被編碼[QUrl.toPercentEncoding](qurl.html#toPercentEncoding)()或[QUrl.encodedPath](qurl.html#encodedPath)( ) 。 如果IO設備_to_為0的[readyRead](qhttp.html#readyRead)( )信號被每個新的內容數據是可讀取的時間發射。 如果IO設備_to_不為0時,響應的內容數據直接寫入到設備。確保_to_指針是有效的操作的持續時間(它是安全的刪除當[requestFinished](qhttp.html#requestFinished)()信號被發射) 。 #### Request Processing 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 **See also** [setHost](qhttp.html#setHost)( )[post](qhttp.html#post)( )[head](qhttp.html#head)( )[request](qhttp.html#request)( )[requestStarted](qhttp.html#requestStarted)( )[requestFinished](qhttp.html#requestFinished)()和[done](qhttp.html#done)( ) 。 ``` bool QHttp.hasPendingRequests (self) ``` 返回True如果有尚未被執行計劃的任何請求,否則返回False 。 正在執行的請求_not_認為作為計劃的要求。 **See also** [clearPendingRequests](qhttp.html#clearPendingRequests)( )[currentId](qhttp.html#currentId)()和[currentRequest](qhttp.html#currentRequest)( ) 。 ``` int QHttp.head (self, QString?path) ``` 發送一個請求頭_path_通過設置服務器[setHost](qhttp.html#setHost)()或在構造函數中指定。 _path_必須像一個絕對路徑`/index.html`或者像一個絕對URI`http://example.com/index.html`。 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 **See also** [setHost](qhttp.html#setHost)( )[get](qhttp.html#get)( )[post](qhttp.html#post)( )[request](qhttp.html#request)( )[requestStarted](qhttp.html#requestStarted)( )[requestFinished](qhttp.html#requestFinished)()和[done](qhttp.html#done)( ) 。 ``` QHttp.ignoreSslErrors (self) ``` 這種方法也是一個Qt槽與C + +的簽名`void ignoreSslErrors()`。 告訴[QSslSocket](qsslsocket.html)用于HTTP連接忽略報告的錯誤[sslErrors](qhttp.html#sslErrors)()信號。 注意,該功能必須從連接到一個時隙內的稱為[sslErrors](qhttp.html#sslErrors)()信號有任何影響。 **See also** [QSslSocket](qsslsocket.html)和[QSslSocket.sslErrors](qsslsocket.html#sslErrors)( ) 。 ``` QHttpResponseHeader QHttp.lastResponse (self) ``` [](qhttpresponseheader.html) [返回最近結束的HTTP請求接收到的響應報頭。如果沒有反應尚未收到](qhttpresponseheader.html)[QHttpResponseHeader.isValid](qhttpheader.html#isValid)( )將返回False 。 **See also** [currentRequest](qhttp.html#currentRequest)( ) 。 ``` int QHttp.post (self, QString?path, QIODevice?data, QIODevice?to?=?None) ``` 對于發送POST請求_path_通過設置服務器[setHost](qhttp.html#setHost)()或在構造函數中指定。 _path_必須像一個絕對路徑`/index.html`或者像一個絕對URI`http://example.com/index.html`并且必須與任一被編碼[QUrl.toPercentEncoding](qurl.html#toPercentEncoding)()或[QUrl.encodedPath](qurl.html#encodedPath)( ) 。 傳入的數據來自經_data_IO設備。 如果IO設備_to_為0的[readyRead](qhttp.html#readyRead)( )信號被每個新的內容數據是可讀取的時間發射。 如果IO設備_to_不為0時,響應的內容數據直接寫入到設備。確保_to_指針是有效的操作的持續時間(它是安全的刪除當[requestFinished](qhttp.html#requestFinished)()信號被發射) 。 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 **See also** [setHost](qhttp.html#setHost)( )[get](qhttp.html#get)( )[head](qhttp.html#head)( )[request](qhttp.html#request)( )[requestStarted](qhttp.html#requestStarted)( )[requestFinished](qhttp.html#requestFinished)()和[done](qhttp.html#done)( ) 。 ``` int QHttp.post (self, QString?path, QByteArray?data, QIODevice?to?=?None) ``` 這是一個重載函數。 _data_作為HTTP請求的內容數據。 ``` str QHttp.read (self, int?maxlen) ``` 閱讀_maxlen_從響應內容字節到_data_并返回讀取的字節數。返回-1,如果發生了錯誤。 **See also** [get](qhttp.html#get)( )[post](qhttp.html#post)( )[request](qhttp.html#request)( )[readyRead](qhttp.html#readyRead)( )[bytesAvailable](qhttp.html#bytesAvailable)()和[readAll](qhttp.html#readAll)( ) 。 ``` QByteArray QHttp.readAll (self) ``` [ 讀取響應內容的所有字節,并返回它們。 ](qbytearray.html) [**See also**](qbytearray.html) [get](qhttp.html#get)( )[post](qhttp.html#post)( )[request](qhttp.html#request)( )[readyRead](qhttp.html#readyRead)( )[bytesAvailable](qhttp.html#bytesAvailable)()和[read](qhttp.html#read)( ) 。 ``` int QHttp.request (self, QHttpRequestHeader?header, QIODevice?data?=?None, QIODevice?to?=?None) ``` 發送一個請求到所設定的服務器[setHost](qhttp.html#setHost)()或在構造函數中指定。使用_header_作為HTTP請求頭。你是負責建立一個頭適合于您的要求。 傳入的數據來自經_data_IO設備。 如果IO設備_to_為0的[readyRead](qhttp.html#readyRead)( )信號被每個新的內容數據是可讀取的時間發射。 如果IO設備_to_不為0時,響應的內容數據直接寫入到設備。確保_to_指針是有效的操作的持續時間(它是安全的刪除當[requestFinished](qhttp.html#requestFinished)()信號被發射) 。 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 **See also** [setHost](qhttp.html#setHost)( )[get](qhttp.html#get)( )[post](qhttp.html#post)( )[head](qhttp.html#head)( )[requestStarted](qhttp.html#requestStarted)( )[requestFinished](qhttp.html#requestFinished)()和[done](qhttp.html#done)( ) 。 ``` int QHttp.request (self, QHttpRequestHeader?header, QByteArray?data, QIODevice?to?=?None) ``` 這是一個重載函數。 _data_作為HTTP請求的內容數據。 ``` int QHttp.setHost (self, QString?hostName, int?port?=?80) ``` 設置用于為請求的HTTP服務器_hostName_端口_port_。 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 **See also** [get](qhttp.html#get)( )[post](qhttp.html#post)( )[head](qhttp.html#head)( )[request](qhttp.html#request)( )[requestStarted](qhttp.html#requestStarted)( )[requestFinished](qhttp.html#requestFinished)()和[done](qhttp.html#done)( ) 。 ``` int QHttp.setHost (self, QString?hostname, ConnectionMode?mode, int?port?=?0) ``` 設置用于為請求的HTTP服務器_hostName_端口_port_使用連接模式_mode_。 如果端口為0 ,它會使用默認端口_mode_使用( 80用于HTTP和HTTPS使用443 ) 。 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 **See also** [get](qhttp.html#get)( )[post](qhttp.html#post)( )[head](qhttp.html#head)( )[request](qhttp.html#request)( )[requestStarted](qhttp.html#requestStarted)( )[requestFinished](qhttp.html#requestFinished)()和[done](qhttp.html#done)( ) 。 ``` int QHttp.setProxy (self, QString?host, int?port, QString?user?=?QString(), QString?password?=?QString()) ``` 啟用HTTP代理支持,則使用代理服務器_host_端口_port_。_username_和_password_如果代理服務器需要身份驗證可以提供。 例如: ``` void Ticker.getTicks() { http = new [QHttp](qhttp.html)(this); connect(http, SIGNAL(done(bool)), this, SLOT(showPage())); http->setProxy("proxy.example.com", 3128); http->setHost("ticker.example.com"); http->get("/ticks.asp"); } void Ticker.showPage() { display(http->readAll()); } ``` [QHttp](qhttp.html)僅支持非透明web代理服務器,如魷魚Web代理緩存服務器(從[http://www.squid.org/](http://www.squid.org/)) 。對于透明代理,比如SOCKS5 ,使用[QNetworkProxy](qnetworkproxy.html)代替。 **Note:**setProxy ( )之前已被調用[setHost](qhttp.html#setHost)( )才能生效。如果setProxy ( )之后調用[setHost](qhttp.html#setHost)( ) ,那么就不會適用,直至后[setHost](qhttp.html#setHost)()被再次調用。 **See also** [QFtp.setProxy](qftp.html#setProxy)( ) 。 ``` int QHttp.setProxy (self, QNetworkProxy?proxy) ``` 這是一個重載函數。 從使用的代理服務器設置啟用HTTP代理支持_proxy_。如果_proxy_是一個透明代理,[QHttp](qhttp.html)將調用[QAbstractSocket.setProxy](qabstractsocket.html#setProxy)( )底層套接字上。如果類型是[QNetworkProxy.HttpCachingProxy](qnetworkproxy.html#ProxyType-enum),[QHttp](qhttp.html)會像以前的功能。 **Note:**對于使用Qt 4.3的兼容性,如果代理類型是[QNetworkProxy.HttpProxy](qnetworkproxy.html#ProxyType-enum)和請求類型是未加密的(也就是[ConnectionModeHttp](qhttp.html#ConnectionMode-enum)) ,[QHttp](qhttp.html)將把代理的緩存代理。 ``` int QHttp.setSocket (self, QTcpSocket?socket) ``` 取代了內部[QTcpSocket](qtcpsocket.html)那[QHttp](qhttp.html)與使用_socket_。如果你想使用自己定制的,這非常有用[QTcpSocket](qtcpsocket.html)子類,而不是純[QTcpSocket](qtcpsocket.html)那[QHttp](qhttp.html)默認情況下使用。[QHttp](qhttp.html)不采取插座的所有權,并不會刪除_socket_銷毀時。 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 注意:如果[QHttp](qhttp.html)用于運行其自己的事件循環的非GUI線程,你必須移動_socket_該線程調用setSocket ()之前。 **See also** [QObject.moveToThread](qobject.html#moveToThread)()和[Thread Support in Qt](index.htm)。 ``` int QHttp.setUser (self, QString?userName, QString?password?=?QString()) ``` 這個函數設置的用戶名_userName_和密碼_password_對于需要身份驗證的網頁。 該函數不會阻塞,而是立即返回。該請求被預定,并且是異步執行的執行。該函數返回一個唯一的標識符,它是由通過[requestStarted](qhttp.html#requestStarted)()和[requestFinished](qhttp.html#requestFinished)( ) 。 當該請求被啟動[requestStarted](qhttp.html#requestStarted)()信號被發射。當它完成時的[requestFinished](qhttp.html#requestFinished)()信號被發射。 ``` State QHttp.state (self) ``` [](qhttp.html#State-enum) [返回該對象的當前狀態。當狀態改變時,](qhttp.html#State-enum)[stateChanged](qhttp.html#stateChanged)()信號被發射。 **See also** [State](qhttp.html#State-enum)和[stateChanged](qhttp.html#stateChanged)( ) 。 * * * ## Qt Signal Documentation ``` void authenticationRequired (const QString&,quint16,QAuthenticator *) ``` 這是該信號的默認超載。 這個信號可以在一個Web服務器發送給發射_hostname_和_port_需要驗證。該_authenticator_對象可以被填充在與必需的細節,以便驗證和持續的連接。 **Note:**這是不可能使用QueuedConnection連接到該信號,就好像所述認證沒有被填充了新的信息時,該信號返回的連接失敗。 此功能被引入Qt的4.3 。 **See also** [QAuthenticator](qauthenticator.html)和[QNetworkProxy](qnetworkproxy.html)。 ``` void dataReadProgress (int,int) ``` 這是該信號的默認超載。 當這個對象讀取HTTP服務器的數據來表示的下載目前的進展,這個信號被發射。 _done_是數據的已經到來,而且量_total_是數據的總量。這是可能的,應該傳輸的數據的總量不能確定的,在這種情況_total_為0 (如果您連接到一個[QProgressBar](qprogressbar.html),進度條顯示一個繁忙的指標,如果總為0 ) 。 **Warning:** _done_和_total_不一定以字節為單位的大小,因為對于大文件的這些值可能需要被“縮放”,以避免溢出。 **See also** [dataSendProgress](qhttp.html#dataSendProgress)( )[get](qhttp.html#get)( )[post](qhttp.html#post)( )[request](qhttp.html#request)()和[QProgressBar](qprogressbar.html)。 ``` void dataSendProgress (int,int) ``` 這是該信號的默認超載。 當這個對象將數據發送到一個HTTP服務器通知它的上傳進度這個信號被發射。 _done_是數據的已經到來,而且量_total_是數據的總量。這是可能的,應該傳輸的數據的總量不能確定的,在這種情況_total_為0 (如果您連接到一個[QProgressBar](qprogressbar.html),進度條顯示一個繁忙的指標,如果總為0 ) 。 **Warning:** _done_和_total_不一定以字節為單位的大小,因為對于大文件的這些值可能需要被“縮放”,以避免溢出。 **See also** [dataReadProgress](qhttp.html#dataReadProgress)( )[post](qhttp.html#post)( )[request](qhttp.html#request)()和[QProgressBar](qprogressbar.html)。 ``` void done (bool) ``` 這是該信號的默認超載。 這個信號被發射時的最后一個未決請求已經完成(這是后發出的最后一個請求的[requestFinished](qhttp.html#requestFinished)( )信號) 。_error_是真的,如果在處理過程中發生錯誤,否則_error_是假的。 **See also** [requestFinished](qhttp.html#requestFinished)( )[error](qhttp.html#error)()和[errorString](qhttp.html#errorString)( ) 。 ``` void proxyAuthenticationRequired (const QNetworkProxy&,QAuthenticator *) ``` 這是該信號的默認超載。 這個信號可以被發射時,一_proxy_需要進行身份驗證時使用。該_authenticator_對象可以被填充在與必需的細節,以便驗證和持續的連接。 **Note:**這是不可能使用QueuedConnection連接到該信號,就好像所述認證沒有被填充了新的信息時,該信號返回的連接失敗。 此功能被引入Qt的4.3 。 **See also** [QAuthenticator](qauthenticator.html)和[QNetworkProxy](qnetworkproxy.html)。 ``` void readyRead (const QHttpResponseHeader&) ``` 這是該信號的默認超載。 當有新的響應數據來讀取該信號被發射。 如果在其中的數據應該被寫入請求中指定的一個裝置,然后該信號是_not_射出,而是將數據直接寫入到設備。 響應頭中傳遞_resp_。 您可以使用讀取數據[readAll](qhttp.html#readAll)()或[read](qhttp.html#read)( )函數 如果你想,只要它成為可用在處理大塊數據這個信號是非常有用的。如果你只關心在完整的數據,只需連接到[requestFinished](qhttp.html#requestFinished)( )信號并讀取數據,然后代替。 **See also** [get](qhttp.html#get)( )[post](qhttp.html#post)( )[request](qhttp.html#request)( )[readAll](qhttp.html#readAll)( )[read](qhttp.html#read)()和[bytesAvailable](qhttp.html#bytesAvailable)( ) 。 ``` void requestFinished (int,bool) ``` 這是該信號的默認超載。 處理所確定的請求時,這個信號被發射_id_已完成。_error_是真的,如果在處理過程中發生錯誤,否則_error_是假的。 **See also** [requestStarted](qhttp.html#requestStarted)( )[done](qhttp.html#done)( )[error](qhttp.html#error)()和[errorString](qhttp.html#errorString)( ) 。 ``` void requestStarted (int) ``` 這是該信號的默認超載。 處理所確定的請求時,這個信號被發射_id_開始。 **See also** [requestFinished](qhttp.html#requestFinished)()和[done](qhttp.html#done)( ) 。 ``` void responseHeaderReceived (const QHttpResponseHeader&) ``` 這是該信號的默認超載。 當服務器響應的HTTP標頭可用這個信號被發射。報頭中傳遞_resp_。 **See also** [get](qhttp.html#get)( )[post](qhttp.html#post)( )[head](qhttp.html#head)( )[request](qhttp.html#request)()和[readyRead](qhttp.html#readyRead)( ) 。 ``` void sslErrors (const QList<QSslError>&) ``` 這是該信號的默認超載。 轉發sslErrors從信號[QSslSocket](qsslsocket.html)在使用[QHttp](qhttp.html)。_errors_是在SSL握手期間發生的錯誤的列表。除非你打電話[ignoreSslErrors](qhttp.html#ignoreSslErrors)從連接到在發生錯誤時該信號的時隙內的() ,[QHttp](qhttp.html)發射的信號后,立即將斷開連接。 此功能被引入Qt的4.3 。 **See also** [QSslSocket](qsslsocket.html)和[QSslSocket.ignoreSslErrors](qsslsocket.html#ignoreSslErrors)( ) 。 ``` void stateChanged (int) ``` 這是該信號的默認超載。 這個信號被發射時的狀態[QHttp](qhttp.html)對象更改。這個論點_state_是該連接的新的狀態,它是一個[State](qhttp.html#State-enum)值。 當一個請求開始這通常發生,但是當服務器關閉連接或當調用它也可以發生[close](qhttp.html#close)( )成功了。 **See also** [get](qhttp.html#get)( )[post](qhttp.html#post)( )[head](qhttp.html#head)( )[request](qhttp.html#request)( )[close](qhttp.html#close)( )[state](qhttp.html#state)()和[State](qhttp.html#State-enum)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看