阅读网页内容,获得例外

时间:2012-07-18 12:40:50

标签: java

我正在创建一个Android应用程序,为此我必须从URL获取JSON内容(由某些python脚本输出)。

我在SO上找到了一种方法,但是我无法让它发挥作用。这是代码:

public String webGet(String URL) throws Exception  
{ 
    BufferedReader in = null; 
    try  
    { 
        HttpClient client = new DefaultHttpClient(); 
        client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "android"); 

        HttpGet request = new HttpGet();
        request.setHeader("Content-Type", "text/html; charset=utf-8"); 
        request.setURI(new URI(URL)); 

        // Crashes after executing this line
        HttpResponse response = client.execute(request); 

        in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 

        StringBuffer sb = new StringBuffer(""); 
        String line = ""; 

        String NL = System.getProperty("line.separator"); 
        while ((line = in.readLine()) != null)  
        { 
            sb.append(line + NL); 
        } 
        in.close(); 
        String page = sb.toString();

        //System.out.println(page); 
        return page; 
    }  
    finally  
    { 
        if (in != null)  
        { 
            try  
            { 
                in.close(); 
            }  
            catch (IOException e)     
            { 
                Log.d("BBB", e.toString()); 
            } 
        } 
    } 
}

此次崩溃发生在此行之后:

HttpResponse response = client.execute(request);

然后它只是跳转到finally部分,我可以从异常消息得到的是null。它就是全部。

任何人都知道问题可能是什么?


异常说明的屏幕截图:

enter image description here

2 个答案:

答案 0 :(得分:0)

您应该尝试捕获异常而不是抛出它,这样您就可以获得有关错误的更多信息。

try {

} catch (ExceptionType name) {

} catch (ExceptionType name) {

}

http://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html

答案 1 :(得分:0)

在某些Android版本中,您无法从“主”主题执行网络操作。这是为了确保您的应用仍然对最终用户做出响应,即使它做了一些阻塞,网络操作需要很长时间。

你需要在另一个线程中执行该操作。

Unable to connect to FTP in Android