0

我使用eclipse,问题是我的httpConnection代码适用于android 2.3.3。但它不适用于android 5.0我无法处理它。Android 5.0 OpenHttpConnection错误

private InputStream OpenHttpConnection(String urlString) throws IOException{ 
    InputStream in = null; 
    int response = -1; 
    URL url = new URL(urlString); 
    URLConnection conn = url.openConnection(); 
    if(!(conn instanceof HttpURLConnection)) 
     throw new IOException("Not an HTTP connection"); 
    try{ 
     HttpURLConnection httpConn = (HttpURLConnection) conn; 
     httpConn.setRequestMethod("GET"); 
     httpConn.connect(); 
     response = httpConn.getResponseCode(); 
     if(response == HttpURLConnection.HTTP_OK){ 
      in = httpConn.getInputStream(); 
     } 
    } 
    catch(Exception ex){ 
     throw new IOException ("Error connecting"); 
    } 
    return in; 
} 

它给我“错误连接”上的android 5.0也android 4.0.3。

+0

这是你自己的错误字符串。你扔掉有价值的信息。你应该使用ex.getMessage()来获得真正的错误。查看和发布你的logcat,因为你有更多的错误/例外。 – greenapps 2014-12-06 16:46:40

回答

0

由于您描述使用android 2.3.3时未出现此错误,因此可能与新的“严格模式”有关。

当您在主线程上执行网络操作时,它可能会减慢或阻止在主线程上运行的GUI的处理。这会导致无响应的行为。 由于API级别9,有所谓的“严格模式”,它阻止了这种行为。因此,您必须使用AsyncTask并在后台线程上运行网络操作。如果你不这样做,你通常会遇到这样的错误。正如在上面的评论中提到的 - 你应该得到更多关于抛出的异常的信息,以便找出真正的问题。

参见:stackoverflow post: cannot-connect-using-httpconnection-in-android

,并阅读更多有关的AsyncTask:AsyncTask