2011-05-24 73 views
2

我目前使用HttpURLConnection来传输实况内容,如无线电广播。不过看起来使用HttpClient是一个更好的选择,因为它得到了Android的很好的支持,它是一个更好的实现。此外,似乎有一个从丢失的连接自动重新连接的逻辑。如何使用HttpClient下载连续的数据流?

我的问题是,我无法得到这个工作。当致电httpclient.execute(...)时,它总是挂起。

我在做什么错?

HttpClient httpclient = new DefaultHttpClient(); 
HttpGet httpget = new HttpGet("http://208.76.243.123:7100"); 
HttpResponse response = httpclient.execute(httpget); 
HttpEntity entity = response.getEntity(); 

回答

0

在调试器中运行它,当它挂起时,调用break。然后找到正在执行代码的线程,并在堆栈跟踪中查看它被阻塞的位置。你会看到它是否被阻塞在IO上或其他事情正在发生。有了这些数据,就可以更容易地找出问题所在。

0
  1. 您确定您的服务器能够理解HTTP协议吗? (我认为是的,这听起来像你有一个不同的客户端工作)。执行方法可能被阻塞,因为它还没有看到有效的Response头。

  2. 您可能想要entity.getContent()这将返回一个流的句柄。请参阅this问题。