0

使用 ProgressEvent.SOCKET_DATA 时,如何知道套接字服务器或 Web 服务器是否完成了 HTTP GET 请求的传输?我用 socket.writeUTFBytes('GET /index.php HTTP/1.1\r\n'); 做我的套接字请求 但是“答案”是如此之大,以至于我得到了多个 ProgressEvent.SOCKET_DATA。我怎么知道它应该向我传输多少数据?或者当它完成传输时?甚至我会从这个请求中得到多少个progressEvents?到目前为止,我正在使用一个计时器来检查服务器是否仍在传输,但这不是一种非常干净的做事方式..

4

1 回答 1

1

我怎么知道它应该向我传输多少数据?或者当它完成传输时?

如果是由服务器发送的,则通过读取Content-length标头,或者等待服务器关闭连接,或者0<CRLF><CRLF>如果启用了分块传输编码,则通过读取直到遇到最后一个块(),或者任何其他指示已收到完整的答复

为简单起见,请使用HTTPService,或者如果这不符合您的需要,请使用实现 HTTP 客户端的库

甚至我会从这个请求中得到多少个progressEvents?

没有办法说。

于 2012-07-27T14:16:00.790 回答