Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QNetworkReply类包含数据和标头与发送请求QNetworkAccessManager More...
继承QIODevice。
该QNetworkReply类包含数据和标头与发送请求QNetworkAccessManager
该QNetworkReply类包含与贴有一个请求中的数据和元数据QNetworkAccessManager。喜欢QNetworkRequest,它包含一个URL和标题(无论是在解析和原始形式) ,对答复的状态和回复本身的内容的一些信息。
QNetworkReply是顺序存取QIODevice,这意味着,一旦数据从对象读取时,它不再保持通过该装置。因此,它是应用程序的责任,保持这个数据,如果需要。每当更多的数据是从网络接收和处理,则readyRead()信号被发射。
该downloadProgress()信号也被发射的数据的接收时,但包含在它的字节数可能并不代表实际收到的字节,如果有的话变换完成的内容(例如,解压缩并去除协议开销)。
尽管QNetworkReply是QIODevice连接到应答的内容,它也发射uploadProgress()信号,其指示上载于具有这样的内容的操作的进度。
Note:请不要删除该对象在连接到插槽error()或finished()信号。使用deleteLater( ) 。
指示请求的处理过程中找到的所有可能的错误条件。
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( ) 。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
创建QNetworkReply与父对象parent。
你不能直接实例化QNetworkReply对象。使用QNetworkAccessManager函数来做到这一点。
这种方法是抽象的,应在任何子类中重新实现。
立即中止操作,并关闭所有的网络连接仍然处于打开状态。上传仍在进行中,也中止。
See also close( ) 。
从重新实现QIODevice.close( ) 。
关闭此设备以供读取。未读取的数据将被丢弃,但是网络资源不被丢弃,直到它们被完成。特别是,如果任何的上传过程中,它会继续,直到它完成。
该finished当所有的操作都在和网络资源被释放( )信号被发射。
See also abort()和finished( ) 。
返回该请求的处理过程中发现错误。如果没有发现错误,返回NoError。
See also setError( ) 。
返回True如果name原始标题headerName被送往由远程服务器
See also rawHeader( ) 。
返回已知的标头的值header,如果这头被送往由远程服务器。如果头没有被发送,返回无效QVariant。
See also rawHeader( )setHeader()和QNetworkRequest.header( ) 。
这种方法也是一个Qt槽与C + +的签名void ignoreSslErrors()。
如果这个函数被调用,涉及到网络连接的SSL错误将被忽略,包括证书验证错误。
Warning:一定要始终让用户检查报告的错误sslErrors( )信号,并且只从用户的程序是确定经确认后,调用此方法。如果有意外的错误,得到的答复应中止。不检查实际的错误调用此方法将最有可能带来安全风险的应用程序。使用它以极大的关怀!
这个函数可以从连接到插槽被称为sslErrors()信号,这表明它被发现的错误。
See also sslConfiguration( )sslErrors()和QSslSocket.ignoreSslErrors( ) 。
这是一个重载函数。
如果这个函数被调用时,在给定的SSL错误errors将被忽略。
请注意,您可以在SSL错误设定预期的证书:如果,例如,你想发出一个请求到使用自签名证书的服务器时,请考虑下面的代码片断:
QList<QSslCertificate> cert = QSslCertificate.fromPath(QLatin1String("server-certificate.pem")); QSslError error(QSslError.SelfSignedCertificate, cert.at(0)); QList<QSslError> expectedSslErrors; expectedSslErrors.append(error); QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("https://server.tld/index.html"))); reply->ignoreSslErrors(expectedSslErrors); // here connect signals etc.
多次调用该函数会被替换传入以前调用的错误列表。您可以清除通过调用这个函数以一个空列表,你要忽略错误的列表。
此功能被引入Qt的4.6 。
See also sslConfiguration( )sslErrors()和QSslSocket.ignoreSslErrors( ) 。
返回True时,答复已完成或已中止。
此功能被引入Qt的4.6 。
See also isRunning( ) 。
返回True时,该请求仍在处理并答复未能完成或已中止呢。
此功能被引入Qt的4.6 。
See also isFinished( ) 。
返回QNetworkAccessManager这是用于创建此QNetworkReply对象。起初,它也是父对象。
返回被张贴该回复操作。
See also setOperation( ) 。
返回头的原始内容headerName由远程服务器发送。如果没有这样的标题,则返回一个空字节数组,这可能是从一个空的头没有区别。使用hasRawHeader()来验证,如果服务器发送这样的头字段。
See also setRawHeader( )hasRawHeader()和header( ) 。
返回由远程服务器发送的,因为它们被发送的顺序头字段的列表。重复的头被合并在一起并发生后重复的。
返回原头对的列表。
返回读缓冲区的大小,以字节为单位。
See also setReadBufferSize( ) 。
返回被张贴于本答复的请求。在特殊的,注意的URL请求可以是比该答复的不同。
See also QNetworkRequest.url( )url()和setRequest( ) 。
设置属性code有值value。如果code以前设置,它会被复盖。如果value是无效的QVariant,该属性将取消。
See also attribute()和QNetworkRequest.setAttribute( ) 。
设置错误条件是errorCode。人类可读的消息设置errorString。
调用SETERROR ( )不会发出错误(QNetworkReply.NetworkError)信号。
See also error()和errorString( ) 。
设置答复finished。
有在此之后设置回复的数据不能改变。
此功能被引入Qt的4.8 。
See also finished()和isFinished( ) 。
设置已知的头header有利用价值value。标题的相应的原始表格将被设置为好。
See also header( )setRawHeader()和QNetworkRequest.setHeader( ) 。
设置为是此对象的相关操作operation。这个值将被退回operation( ) 。
注:在创建这个对象,而不是再次改变时,操作应设置。
See also operation()和setRequest( ) 。
设置原始标题headerName有利用价值value。如果headerName以前设置,它将被重写。具有相同名称的多个HTTP头在功能上等同于串联的值,用逗号分隔的一个单头。
If headerName匹配一个已知的头,值value将被解析和相应的解析形式也将被设置。
See also rawHeader( )header( )setHeader()和QNetworkRequest.setRawHeader( ) 。
设置读缓冲要的大小size字节。读缓冲区存放的数据正在被下载的断网,然后才读缓冲区QIODevice.read( ) 。设置缓冲区大小为0,将使缓冲区无限的大小。
QNetworkReply会试图阻止从网络读取一次该缓冲区已满(即,bytesAvailable()返回size或更多) ,从而导致下载到踩下油门为好。如果缓冲区不局限于在大小,QNetworkReply会尝试从网络中尽可能快地下载。
不像QAbstractSocket.setReadBufferSize( )QNetworkReply不能在读取缓冲区大小保证精度。即,bytesAvailable( )可以返回多个size。
See also readBufferSize( ) 。
设置相关的请求此对象是request。这个值将被退回request( ) 。
注:在创建这个对象,而不是再次改变时,该请求应该被设置。
See also request()和setOperation( ) 。
设置与此请求关联的网络连接的SSL配置,如果可能的话,是说的config。
See also sslConfiguration( ) 。
设置被加工成的网址url。通常,该URL匹配被张贴的请求,但对各种原因也可以是不同的(例如,被制成一个文件路径的绝对或规范) 。
See also url( )request()和QNetworkRequest.url( ) 。
返回与此相关的答复,如果已使用SSL SSL配置和状态。它将包含远程服务器的证书,其证书链导致的证书颁发机构,以及在使用中的加密密码。
同行的证书,其证书链会的时候被称为sslErrors()被发射,如果它的发射。
See also setSslConfiguration( ) 。
返回下载或上传的内容的URL 。注意,这个URL可以是从原始请求的不同。
See also request( )setUrl()和QNetworkRequest.url( ) 。
这是该信号的默认超载。
这个信号被发射,以指示该网络请求的下载部分的进展,如果有任何。如果没有与此请求关联的下载,这个信号将被一次使用0作为发射两者的值bytesReceived和bytesTotal。
该bytesReceived参数表示接收的字节数,而bytesTotal表示预期要被下载的总字节数。如果不知道要被下载的字节数,bytesTotal将为-1 。
下载完成时bytesReceived等于bytesTotal。在那个时候,bytesTotal不会是-1。
注意,这两个值bytesReceived和bytesTotal可以从不同的size( ) ,获得通过的总字节数read()或readAll() ,或标头( ContentLengthHeader )的值。其理由是,有可能是协议开销或数据可能在下载过程中被压缩。
See also uploadProgress()和bytesAvailable( ) 。
这是该信号的默认超载。
当答复检测处理错误这个信号被发射。该finished()信号可能会遵循,这表明连接已经结束。
该code参数包含检测到的错误代码。通话errorString( )取得的错误条件的文本表示。
Note:不要删除对象连接到这个信号的插槽。使用deleteLater( ) 。
See also error()和errorString( ) 。
这是该信号的默认超载。
当回复已完成处理这个信号被发射。之后此信号被发射,将没有更多的更新到应答的数据或元数据。
除非close( )被调用时,答复将仍然打开进行读取,所以数据可以通过调用来检索read()或readAll( ) 。特别是,如果没有调用read()被提了出来的结果readyRead( ) ,调用readAll( )将获取的全部内容QByteArray。
这个信号在配合发出QNetworkAccessManager.finished( )该信号的答复参数是这个对象。
Note:不要删除对象连接到这个信号的插槽。使用deleteLater( ) 。
您也可以使用isFinished()来检查一个QNetworkReply您收到成品( )信号前完成均匀。
See also setFinished( )QNetworkAccessManager.finished()和isFinished( ) 。
这是该信号的默认超载。
这个信号被发射时在此回复的元数据更改。元数据是不是内容(数据)本身,包括网络报头的任何信息。在大多数情况下,元数据将完全由被接收数据的第一个字节时已知的。然而,能够将数据的处理过程中接收标题或其他元数据的更新。
See also header( )rawHeaderList( )rawHeader()和hasRawHeader( ) 。
这是该信号的默认超载。
这个信号被发射,如果SSL / TLS会话期间,成立了包括证书验证错误,遇到错误。该errors参数包含错误的列表。
为了表明这些错误不是致命的,而连接应进行,ignoreSslErrors()函数应该被称为从连接到该信号的时隙。如果它不叫, SSL会话将被推倒的任何数据交换(包括URL)之前。
这个信号可以被用来显示一个错误消息,指示安全性可能会受到影响的用户,并显示在SSL设置(见sslConfiguration()来获取它) 。如果用户决定继续进行远程证明分析后,槽应调用ignoreSslErrors( ) 。
See also QSslSocket.sslErrors( )QNetworkAccessManager.sslErrors( )sslConfiguration()和ignoreSslErrors( ) 。
这是该信号的默认超载。
这个信号被发射,以指示该网络请求的载部分的进展,如果有任何。如果没有与该请求相关联的上载,该信号将不会被发射。
该bytesSent参数表示上传的字节数,而bytesTotal指示要被上传的总字节数。如果不能确定要上载的字节数,bytesTotal将为-1 。
上传完成后,当bytesSent等于bytesTotal。在那个时候,bytesTotal不会是-1。
See also downloadProgress( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |