0

私のアプリケーションはサーブレットにリクエストを頻繁に送信していましたが、昨日からUnknownHostException Exceptionが発生し始めました。

マニフェスト ファイルにインターネットへのアクセス許可を追加しました。私のサーブレットは PC ブラウザで正常に動作しています。

Android でサーブレットを呼び出すための私のコードは次のとおりです。

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();
}

}

すべての要件を確認しましたが、どのように UnknownHost Exception が突然発生するのかわかりませんか? Android モバイルでアプリケーションをテストしています。

4

2 に答える 2

0

エミュレータを閉じるだけで、アプリを実行するよりも、エミュレータを再起動する必要があります。これは、デバイスで実行している場合、wifiの無効化などのネット接続を切断し、有効にした後、ネット接続の問題のIDbczと1つの問題を確認するよりも接続の問題が原因で発生します。 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
  }
于 2012-06-21T10:03:06.170 に答える
0

コードに問題がないことを確認したら、モバイルの接続設定を確認してください。アプリをアンインストールして再インストールし(動作する可能性があります)、ブラウザにURLをロードしてみてください(jsonを返すURLを確認しますが、これを返す前に?)

于 2012-06-21T10:05:55.437 に答える