我熟悉android HTTPURLConnection和apache HTTPConnection类及其工作方式(它们都是同步的,但我可以忍受)。
我有一个很大的响应,从服务器传来许多行数据。这是一个JSON响应,我可以在解析所有响应之前部分显示数据。一些json解析器允许(如xcers允许xml)。与上面提到的两个类相关的回调和方法是否允许它?当我在打开输入流并读取时从HTTPURLConnection获得响应时,当 ALL 数据已存在时,是否打开流?或者我可以打开并阅读它以及应遵循的更多内容吗?
另外,Android上是否有与NIO一起使用的http方法?
答案 0 :(得分:2)
使用HttpClient,当您打开响应流时,如下所示:
HttpGet request = new HttpGet();
request.setURI(new URI(url));
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
InputStream stream = entity.getContent();
并开始阅读,您实际上开始下载,并在收到这些字节后立即获得新字节。你不要等待下载的所有内容开始阅读。
据我所知,与Android捆绑在一起的HttpClient并非基于NIO。我不知道有任何替代方案。
答案 1 :(得分:0)
除了Ladlestein评论中的所有可能的解决方案之外,还有一个简单的答案就是将所有这些解包在AsyncTask
中。以下a sample project演示HTTP request
在HttpClient
中使用AsyncTask
进行{{1}}。