2012-07-27 40 views
0

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

回答

1

如何知道它应该传输给我的数据量?或者当它完成传输?

通过阅读Content-length头如果由服务器发送,或等待,直到服务器关闭连接,或者通过阅读,直到你遇到了最后一块(0<CRLF><CRLF>)如果启用了块传输编码,或any of the other indications that a full response has been received

为简单起见,请使用HTTPService或者如果这不符合您的需求,请使用library that implements an HTTP client

甚至有多少progressEvents我会摆脱这个请求?

有没有办法告诉。

+0

谢谢我会尝试CRLF方式:) – Eric 2012-07-27 14:47:25

+0

@Eric除非启用分块传输编码,否则它将不起作用。请不要只阅读我喜欢的答案部分,而是要了解我所说的内容:实施HTTP客户端不是微不足道的,而且容易出错;你应该使用已经这样做的人的图书馆。 – CodeCaster 2012-07-27 14:49:28

相关问题