[QtNetwork module]
该QNetworkReply类包含数据和标头与发送请求QNetworkAccessManager More…
继承QIODevice。
Types
enum NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, ..., TemporaryNetworkFailureError }
Methods
__init__ (self, QObject parent = None)
abort (self)
QVariant attribute (self, QNetworkRequest.Attribute code)
close (self)
NetworkError error (self)
bool hasRawHeader (self, QByteArray headerName)
QVariant header (self, QNetworkRequest.KnownHeaders header)
ignoreSslErrors (self)
ignoreSslErrors (self, list-of-QSslError errors)
bool isFinished (self)
bool isRunning (self)
bool isSequential (self)
QNetworkAccessManager manager (self)
QNetworkAccessManager.Operation operation (self)
QByteArray rawHeader (self, QByteArray headerName)
list-of-QByteArray rawHeaderList (self)
list-of-tuple-of-QByteArray-QByteArray rawHeaderPairs (self)
int readBufferSize (self)
QNetworkRequest request (self)
setAttribute (self, QNetworkRequest.Attribute code, QVariant value)
setError (self, NetworkError errorCode, QString errorString)
setFinished (self, bool finished)
setHeader (self, QNetworkRequest.KnownHeaders header, QVariant value)
setOperation (self, QNetworkAccessManager.Operation operation)
setRawHeader (self, QByteArray headerName, QByteArray value)
setReadBufferSize (self, int size)
setRequest (self, QNetworkRequest request)
setSslConfiguration (self, QSslConfiguration configuration)
setUrl (self, QUrl url)
QSslConfiguration sslConfiguration (self)
QUrl url (self)
int writeData (self, str data)
Qt Signals
void downloadProgress (qint64,qint64)
void error (QNetworkReply::NetworkError)
void finished ()
void metaDataChanged ()
void sslErrors (const QList<QSslError>&)
void uploadProgress (qint64,qint64)
Detailed Description
该QNetworkReply类包含数据和标头与发送请求QNetworkAccessManager
该QNetworkReply类包含与贴有一个请求中的数据和元数据QNetworkAccessManager。喜欢QNetworkRequest,它包含一个URL和标题(无论是在解析和原始形式) ,对答复的状态和回复本身的内容的一些信息。
QNetworkReply是顺序存取QIODevice,这意味着,一旦数据从对象读取时,它不再保持通过该装置。因此,它是应用程序的责任,保持这个数据,如果需要。每当更多的数据是从网络接收和处理,则readyRead()信号被发射。
该downloadProgress()信号也被发射的数据的接收时,但包含在它的字节数可能并不代表实际收到的字节,如果有的话变换完成的内容(例如,解压缩并去除协议开销)。
尽管QNetworkReply是QIODevice连接到应答的内容,它也发射uploadProgress()信号,其指示上载于具有这样的内容的操作的进度。
Note:请不要删除该对象在连接到插槽error()或finished()信号。使用deleteLater( ) 。
Type Documentation
QNetworkReply.NetworkError
指示请求的处理过程中找到的所有可能的错误条件。
Constant | Value | Description |
---|---|---|
QNetworkReply.NoError |
0 |
没有错误条件。Note:当HTTP协议返回一个重定向没有错误将被报告。您可以检查是否有与重定向QNetworkRequest.RedirectionTargetAttribute 属性。 |
QNetworkReply.ConnectionRefusedError |
1 |
远程服务器拒绝连接(服务器不接受请求) |
QNetworkReply.RemoteHostClosedError |
2 |
远程服务器关闭了连接过早,整个答复接收和处理前 |
QNetworkReply.HostNotFoundError |
3 |
远程主机名未找到(无效主机名) |
QNetworkReply.TimeoutError |
4 |
连接到远程服务器超时 |
QNetworkReply.OperationCanceledError |
5 |
该操作是通过调用取消abort ()或close ( ),它被完成之前。 |
QNetworkReply.SslHandshakeFailedError |
6 |
在SSL / TLS握手失败,加密的通道不能成立。该sslErrors ()信号应该被发射。 |
QNetworkReply.TemporaryNetworkFailureError |
7 |
该连接由于从网络断开断裂,但是在系统启动漫游到另一个接入点。该请求应该被重新提交,并会尽快连接重新建立处理。 |
QNetworkReply.ProxyConnectionRefusedError |
101 |
连接到代理服务器被拒绝(代理服务器不接受请求) |
QNetworkReply.ProxyConnectionClosedError |
102 |
代理服务器关闭了连接过早,整个答复接收和处理前 |
QNetworkReply.ProxyNotFoundError |
103 |
代理主机名没有被发现(无效的代理主机名) |
QNetworkReply.ProxyTimeoutError |
104 |
连接到代理服务器超时或代理没有及时发送请求回复 |
QNetworkReply.ProxyAuthenticationRequiredError |
105 |
代理需要身份验证才能兑现的要求,但没有接受其提供的任何凭证(如有) |
QNetworkReply.ContentAccessDenied |
201 |
在访问远程内容被拒绝(类似于HTTP错误401 ) |
QNetworkReply.ContentOperationNotPermittedError |
202 |
要求对远程内容的操作是不允许的 |
QNetworkReply.ContentNotFoundError |
203 |
远程内容并没有在服务器上找到(类似于HTTP错误404 ) |
QNetworkReply.AuthenticationRequiredError |
204 |
远程服务器要求身份验证服务的内容,但提供的凭据不被接受(如果有的话) |
QNetworkReply.ContentReSendError |
205 |
请求需要再次发送,但这种失败的例子,因为上传的数据无法读取第二次。 |
QNetworkReply.ProtocolUnknownError |
301 |
网络访问API无法兑现的请求,因为该协议是不为人所知的 |
QNetworkReply.ProtocolInvalidOperationError |
302 |
所请求的操作是此协议无效 |
QNetworkReply.UnknownNetworkError |
99 |
检测到一个未知的网络有关的错误 |
QNetworkReply.UnknownProxyError |
199 |
检测到一个未知的代理相关的错误 |
QNetworkReply.UnknownContentError |
299 |
检测到一个未知错误相关的远程内容 |
QNetworkReply.ProtocolFailure |
399 |
检测在协议的故障(解析错误,无效的或意外的反应,等等) |
See also error( ) 。
Method Documentation
QNetworkReply.__init__ (self, QObject parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
创建QNetworkReply与父对象parent。
你不能直接实例化QNetworkReply对象。使用QNetworkAccessManager函数来做到这一点。
QNetworkReply.abort (self)
这种方法是抽象的,应在任何子类中重新实现。
立即中止操作,并关闭所有的网络连接仍然处于打开状态。上传仍在进行中,也中止。
See also close( ) 。
QVariant QNetworkReply.attribute (self, QNetworkRequest.Attribute code)
QNetworkReply.close (self)
从重新实现QIODevice.close( ) 。
关闭此设备以供读取。未读取的数据将被丢弃,但是网络资源不被丢弃,直到它们被完成。特别是,如果任何的上传过程中,它会继续,直到它完成。
该finished当所有的操作都在和网络资源被释放( )信号被发射。
See also abort()和finished( ) 。
NetworkError QNetworkReply.error (self)
返回该请求的处理过程中发现错误。如果没有发现错误,返回NoError。
See also setError( ) 。
bool QNetworkReply.hasRawHeader (self, QByteArray headerName)
返回True如果name原始标题headerName被送往由远程服务器
See also rawHeader( ) 。
QVariant QNetworkReply.header (self, QNetworkRequest.KnownHeaders header)
返回已知的标头的值header,如果这头被送往由远程服务器。如果头没有被发送,返回无效QVariant。
See also rawHeader( )setHeader()和QNetworkRequest.header( ) 。
QNetworkReply.ignoreSslErrors (self)
这种方法也是一个Qt槽与C + +的签名void ignoreSslErrors()
。
如果这个函数被调用,涉及到网络连接的SSL错误将被忽略,包括证书验证错误。
Warning:一定要始终让用户检查报告的错误sslErrors( )信号,并且只从用户的程序是确定经确认后,调用此方法。如果有意外的错误,得到的答复应中止。不检查实际的错误调用此方法将最有可能带来安全风险的应用程序。使用它以极大的关怀!
这个函数可以从连接到插槽被称为sslErrors()信号,这表明它被发现的错误。
See also sslConfiguration( )sslErrors()和QSslSocket.ignoreSslErrors( ) 。
QNetworkReply.ignoreSslErrors (self, list-of-QSslError errors)
这是一个重载函数。
如果这个函数被调用时,在给定的SSL错误errors将被忽略。
请注意,您可以在SSL错误设定预期的证书:如果,例如,你想发出一个请求到使用自签名证书的服务器时,请考虑下面的代码片断:
[QList](docs_index.htm)<[QSslCertificate](docs_qsslcertificate.html)> cert = [QSslCertificate](docs_qsslcertificate.html).fromPath(QLatin1String("server-certificate.pem"));
[QSslError](docs_qsslerror.html) error([QSslError](docs_qsslerror.html).SelfSignedCertificate, cert.at(0));
[QList](docs_index.htm)<[QSslError](docs_qsslerror.html)> expectedSslErrors;
expectedSslErrors.append(error);
[QNetworkReply](docs_qnetworkreply.html) *reply = manager.get([QNetworkRequest](docs_qnetworkrequest.html)([QUrl](docs_qurl.html)("https://server.tld/index.html")));
reply->ignoreSslErrors(expectedSslErrors);
// here connect signals etc.
多次调用该函数会被替换传入以前调用的错误列表。您可以清除通过调用这个函数以一个空列表,你要忽略错误的列表。
此功能被引入Qt的4.6 。
See also sslConfiguration( )sslErrors()和QSslSocket.ignoreSslErrors( ) 。
bool QNetworkReply.isFinished (self)
返回True时,答复已完成或已中止。
此功能被引入Qt的4.6 。
See also isRunning( ) 。
bool QNetworkReply.isRunning (self)
返回True时,该请求仍在处理并答复未能完成或已中止呢。
此功能被引入Qt的4.6 。
See also isFinished( ) 。
bool QNetworkReply.isSequential (self)
QNetworkAccessManager QNetworkReply.manager (self)
返回QNetworkAccessManager这是用于创建此QNetworkReply对象。起初,它也是父对象。
QNetworkAccessManager.Operation QNetworkReply.operation (self)
[
返回被张贴该回复操作。
](docs_qnetworkaccessmanager.html#Operation-enum)
See also setOperation( ) 。
QByteArray QNetworkReply.rawHeader (self, QByteArray headerName)
返回头的原始内容headerName由远程服务器发送。如果没有这样的标题,则返回一个空字节数组,这可能是从一个空的头没有区别。使用hasRawHeader()来验证,如果服务器发送这样的头字段。
See also setRawHeader( )hasRawHeader()和header( ) 。
list-of-QByteArray QNetworkReply.rawHeaderList (self)
返回由远程服务器发送的,因为它们被发送的顺序头字段的列表。重复的头被合并在一起并发生后重复的。
list-of-tuple-of-QByteArray-QByteArray QNetworkReply.rawHeaderPairs (self)
返回原头对的列表。
int QNetworkReply.readBufferSize (self)
返回读缓冲区的大小,以字节为单位。
See also setReadBufferSize( ) 。
QNetworkRequest QNetworkReply.request (self)
[
返回被张贴于本答复的请求。在特殊的,注意的URL请求可以是比该答复的不同。
](docs_qnetworkrequest.html)
See also QNetworkRequest.url( )url()和setRequest( ) 。
QNetworkReply.setAttribute (self, QNetworkRequest.Attribute code, QVariant value)
设置属性code有值value。如果code以前设置,它会被复盖。如果value是无效的QVariant,该属性将取消。
See also attribute()和QNetworkRequest.setAttribute( ) 。
QNetworkReply.setError (self, NetworkError errorCode, QString errorString)
设置错误条件是errorCode。人类可读的消息设置errorString。
调用SETERROR ( )不会发出错误(QNetworkReply.NetworkError)信号。
See also error()和errorString( ) 。
QNetworkReply.setFinished (self, bool finished)
设置答复finished。
有在此之后设置回复的数据不能改变。
此功能被引入Qt的4.8 。
See also finished()和isFinished( ) 。
QNetworkReply.setHeader (self, QNetworkRequest.KnownHeaders header, QVariant value)
设置已知的头header有利用价值value。标题的相应的原始表格将被设置为好。
See also header( )setRawHeader()和QNetworkRequest.setHeader( ) 。
QNetworkReply.setOperation (self, QNetworkAccessManager.Operation operation)
设置为是此对象的相关操作operation。这个值将被退回operation( ) 。
注:在创建这个对象,而不是再次改变时,操作应设置。
See also operation()和setRequest( ) 。
QNetworkReply.setRawHeader (self, QByteArray headerName, QByteArray value)
设置原始标题headerName有利用价值value。如果headerName以前设置,它将被重写。具有相同名称的多个HTTP头在功能上等同于串联的值,用逗号分隔的一个单头。
If headerName匹配一个已知的头,值value将被解析和相应的解析形式也将被设置。
See also rawHeader( )header( )setHeader()和QNetworkRequest.setRawHeader( ) 。
QNetworkReply.setReadBufferSize (self, int size)
设置读缓冲要的大小size字节。读缓冲区存放的数据正在被下载的断网,然后才读缓冲区QIODevice.read( ) 。设置缓冲区大小为0,将使缓冲区无限的大小。
QNetworkReply会试图阻止从网络读取一次该缓冲区已满(即,bytesAvailable()返回size或更多) ,从而导致下载到踩下油门为好。如果缓冲区不局限于在大小,QNetworkReply会尝试从网络中尽可能快地下载。
不像QAbstractSocket.setReadBufferSize( )QNetworkReply不能在读取缓冲区大小保证精度。即,bytesAvailable( )可以返回多个size。
See also readBufferSize( ) 。
QNetworkReply.setRequest (self, QNetworkRequest request)
设置相关的请求此对象是request。这个值将被退回request( ) 。
注:在创建这个对象,而不是再次改变时,该请求应该被设置。
See also request()和setOperation( ) 。
QNetworkReply.setSslConfiguration (self, QSslConfiguration configuration)
设置与此请求关联的网络连接的SSL配置,如果可能的话,是说的config。
See also sslConfiguration( ) 。
QNetworkReply.setUrl (self, QUrl url)
设置被加工成的网址url。通常,该URL匹配被张贴的请求,但对各种原因也可以是不同的(例如,被制成一个文件路径的绝对或规范) 。
See also url( )request()和QNetworkRequest.url( ) 。
QSslConfiguration QNetworkReply.sslConfiguration (self)
[
返回与此相关的答复,如果已使用SSL SSL配置和状态。它将包含远程服务器的证书,其证书链导致的证书颁发机构,以及在使用中的加密密码。
](docs_qsslconfiguration.html)
同行的证书,其证书链会的时候被称为sslErrors()被发射,如果它的发射。
See also setSslConfiguration( ) 。
QUrl QNetworkReply.url (self)
[
返回下载或上传的内容的URL 。注意,这个URL可以是从原始请求的不同。
](docs_qurl.html)
See also request( )setUrl()和QNetworkRequest.url( ) 。
int QNetworkReply.writeData (self, str data)
Qt Signal Documentation
void downloadProgress (qint64,qint64)
这是该信号的默认超载。
这个信号被发射,以指示该网络请求的下载部分的进展,如果有任何。如果没有与此请求关联的下载,这个信号将被一次使用0作为发射两者的值bytesReceived和bytesTotal。
该bytesReceived参数表示接收的字节数,而bytesTotal表示预期要被下载的总字节数。如果不知道要被下载的字节数,bytesTotal将为-1 。
下载完成时bytesReceived等于bytesTotal。在那个时候,bytesTotal不会是-1。
注意,这两个值bytesReceived和bytesTotal可以从不同的size( ) ,获得通过的总字节数read()或readAll() ,或标头( ContentLengthHeader )的值。其理由是,有可能是协议开销或数据可能在下载过程中被压缩。
See also uploadProgress()和bytesAvailable( ) 。
void error (QNetworkReply::NetworkError)
这是该信号的默认超载。
当答复检测处理错误这个信号被发射。该finished()信号可能会遵循,这表明连接已经结束。
该code参数包含检测到的错误代码。通话errorString( )取得的错误条件的文本表示。
Note:不要删除对象连接到这个信号的插槽。使用deleteLater( ) 。
See also error()和errorString( ) 。
void finished ()
这是该信号的默认超载。
当回复已完成处理这个信号被发射。之后此信号被发射,将没有更多的更新到应答的数据或元数据。
除非close( )被调用时,答复将仍然打开进行读取,所以数据可以通过调用来检索read()或readAll( ) 。特别是,如果没有调用read()被提了出来的结果readyRead( ) ,调用readAll( )将获取的全部内容QByteArray。
这个信号在配合发出QNetworkAccessManager.finished( )该信号的答复参数是这个对象。
Note:不要删除对象连接到这个信号的插槽。使用deleteLater( ) 。
您也可以使用isFinished()来检查一个QNetworkReply您收到成品( )信号前完成均匀。
See also setFinished( )QNetworkAccessManager.finished()和isFinished( ) 。
void metaDataChanged ()
这是该信号的默认超载。
这个信号被发射时在此回复的元数据更改。元数据是不是内容(数据)本身,包括网络报头的任何信息。在大多数情况下,元数据将完全由被接收数据的第一个字节时已知的。然而,能够将数据的处理过程中接收标题或其他元数据的更新。
See also header( )rawHeaderList( )rawHeader()和hasRawHeader( ) 。
void sslErrors (const QList<QSslError>&)
这是该信号的默认超载。
这个信号被发射,如果SSL / TLS会话期间,成立了包括证书验证错误,遇到错误。该errors参数包含错误的列表。
为了表明这些错误不是致命的,而连接应进行,ignoreSslErrors()函数应该被称为从连接到该信号的时隙。如果它不叫, SSL会话将被推倒的任何数据交换(包括URL)之前。
这个信号可以被用来显示一个错误消息,指示安全性可能会受到影响的用户,并显示在SSL设置(见sslConfiguration()来获取它) 。如果用户决定继续进行远程证明分析后,槽应调用ignoreSslErrors( ) 。
See also QSslSocket.sslErrors( )QNetworkAccessManager.sslErrors( )sslConfiguration()和ignoreSslErrors( ) 。
void uploadProgress (qint64,qint64)
这是该信号的默认超载。
这个信号被发射,以指示该网络请求的载部分的进展,如果有任何。如果没有与该请求相关联的上载,该信号将不会被发射。
该bytesSent参数表示上传的字节数,而bytesTotal指示要被上传的总字节数。如果不能确定要上载的字节数,bytesTotal将为-1 。
上传完成后,当bytesSent等于bytesTotal。在那个时候,bytesTotal不会是-1。
See also downloadProgress( ) 。