2012-06-21 3 views
0

내 응용 프로그램이 서블릿에 요청을 자주 보내고 있었지만 어제 이후로 UnknownHostException 예외가 발생했습니다.. 1 개월 이후로 정상적으로 작동하는 코드에 어떤 문제가 있는지 알지 못합니다.안드로이드에서 UnknownHost 예외

내 매니페스트 파일의 인터넷에 액세스 할 수있는 권한을 추가했습니다. 내 서블릿이 PC 브라우저에서 올바르게 작동합니다. 안드로이드에서 서블릿을 호출하기위한

내 코드입니다 : 나는 모든 요구 사항을 확인했지만 갑자기 UnknownHost 예외를 제공하는 방법을 잘 모릅니다

String url = "http://sampark.iiit.ac.in:8080/VTSServlets/CurrentTripInfo?mobilenum=##########&lat=10&long=10" 
String response = getResponse(url); 



public static String getResponse(final String url) 
{ 
     final StringBuilder builder = new StringBuilder(); 
    final HttpClient client = new DefaultHttpClient(); 

    System.out.println("URL :: " + url); 
    final HttpGet httpGet = new HttpGet(url); 
    try { 
     final HttpResponse response = client.execute(httpGet); 
     final StatusLine statusLine = response.getStatusLine(); 
     final int statusCode = statusLine.getStatusCode(); 
     if (statusCode == 200) { 
      final HttpEntity entity = response.getEntity(); 
      final InputStream content = entity.getContent(); 
      final BufferedReader reader = new BufferedReader(
        new InputStreamReader(content)); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       builder.append(line); 
      } 
     } else { 
      builder.append("Not 200"); 
     } 
    } catch (final ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (final IOException e) { 
     e.printStackTrace(); 
    } 

    return builder.toString(); 
} 

} 

나는 안드로이드 모바일에 내 응용 프로그램을 테스트하는거야?.

+0

** 휴대 전화가 인터넷에 연결되어 있지 않거나 현재 통화중인 URL이 다운 됨 **. – MKJParekh

+0

좋은 댓글 @priyank – Khan

답변

0

그냥 에뮬레이터을 닫고 실행 응용 프로그램은 u는이 유 와이파이 해제 등의 분리 그물 연결보다 장치에서 실행하는 경우로 인해 연결 문제 발생 이후를 활성화하고이 문제 아이디 BCZ을 확인 에뮬레이터를 다시 시작해야 의미보다 인터넷 연결 문제 그리고 webserivce 응용 프로그램에 대한 한 가지 더 순 먼저 확인 연결에서 데이터 나 이미지를 얻는 것을 의미 아래와 같이 귀하의 코드를보다

은 당신의 활동이나 수업 시간에이 방법을 추가

protected boolean checkConnection(){ 
    ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

    NetworkInfo networkInfo = conMan.getActiveNetworkInfo(); 

    final boolean connected = networkInfo != null 
      && networkInfo.isAvailable() 
      && networkInfo.isConnected(); 

    if (!connected) { 
     Toast.makeText(
       this, 
       "Failed to connect to internet. Check internet connection!", 
       Toast.LENGTH_LONG).show(); 
     return false; 
    } 
    return true; 
} 

에 추가 사기없는 순 있지만,이 네트워크 상태 권한 상태

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

위의 확인 및 연결

바와 같이 코드가 연결을 위해 모바일 설정을 확인, 괜찮 확인
if(checkConnection()){ 

// Do here your all code as condition successfully satisfied 
    } 
+1

그녀는 Android 모바일에서 게시물을 신중하게 테스트하고 있습니다 – MobileEvangelist

+0

@ 제이 : 저는 소년이에요. – priyank

+0

@Khan : 귀하의 제안을 시도해 보았습니다. 도움을 주셔서 감사합니다. 그러나 여전히 안드로이드 폰을 공장 설정으로 재설정하고 새 프로젝트를 다시 설치 한 후 잘 작동합니다. 아직 문제를 이해하지 못했습니다 .In 어느 날 그것이 작동을 멈추고 모든 것을 재설정 한 후에 작동합니다. 당신의 제안에 감사드립니다. – priyank

0

은 아래 주어진 상태를 확인합니다. 앱을 제거한 후 다시 설치 (브라우저가 제대로 작동하는지 확인)하고 브라우저에서 URL을로드하십시오. (json을 반환하지만이 URL이 반환되기 전에 확인하십시오.)

+0

여러 번 시도했지만 그 후에 공장 설정으로 전화를 재설정 한 후 잘 작동합니다. 제안 사항에 감사드립니다. – priyank

+0

는 그 예외를 더 이상 얻지 못한다는 것을 의미합니다. ?? – MobileEvangelist

+0

@priyank 당신의 휴대 전화 공장 설정을 재설정 할 때 모든 리소스를 상태로 응용 프로그램을 설치하기 전에 앱에서 연결 방법을 확인하십시오. 그리고 나는 이런 유형의 연결을하는 것보다 더 좋은 HttPUrlConnection 클래스를 사용하도록 제안합니다 그것도 속도를 증가 [링크 ..] (http://developer.android.com/reference/java/net/HttpURLConnection.html) 이것이 도움이된다면 ... – MobileEvangelist