0

이클립스를 사용하고 문제는 내 httpConnection 코드가 안드로이드 2.3.3에서 작동한다는 것입니다. 하지만 안드로이드 5.0에서 작동하지 않습니다. 나는 그것을 처리 할 수 ​​없습니다.안드로이드 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; 
} 

내게 "오류 연결"안드로이드 5.0 또한 안드로이드 4.0.3 제공합니다.

+0

. 귀중한 정보를 버리십시오. 실제 오류를 얻으려면 ex.getMessage()를 사용해야합니다. 그리고 더 많은 에러/예외가있을 때 logcat을보고 게시하십시오. – greenapps

답변

0

android 2.3.3을 사용할 때이 오류가 나타나지 않으므로 새로운 "엄격 모드"와 관련이있을 수 있습니다.

주 스레드에서 네트워크 작업을 수행하면 주 스레드에서 실행되는 GUI의 처리 속도가 느려지거나 차단 될 수 있습니다. 이것은 응답하지 않는 행동을 초래할 것입니다. API 레벨 9부터는 이러한 동작을 차단하는 소위 "엄격 모드"가 있습니다. 따라서 AsyncTask를 사용하고 백그라운드 스레드에서 네트워크 작업을 실행해야합니다. 그렇지 않으면 보통 이러한 오류가 발생합니다. 위의 주석에서 언급했듯이 실제 문제가 무엇인지 알아 내기 위해서는 발생 된 예외에 대한 자세한 정보를 얻어야합니다.

은 참조 : stackoverflow post: cannot-connect-using-httpconnection-in-android

그리고 AsyncTask를 대한 자세한 내용을 읽을 수 : 자신의 오류 문자열입니다 AsyncTask