0

我的应用程序经常向 servlet 发送请求,但从昨天开始它开始给出UnknownHostException Exception。我不知道自 1 个月以来运行良好的代码有什么问题。

我在清单文件中添加了访问互联网的权限。我的 servlet 在 PC 浏览器上运行良好。

我在 Android 中调用 servlet 的代码是:

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 异常的?我正在 Android 手机上测试我的应用程序。

4

2 回答 2

0

只需关闭您的模拟器,然后运行应用程序,这意味着您需要重新启动您的模拟器,如果您在设备中运行,则由于连接问题而不是断开网络连接(如 wifi 禁用,然后启用它并检查此问题 id 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
  }
于 2012-06-21T10:03:06.170 回答
0

检查您的代码是否正常,请检查您的移动设置的连接性。尝试卸载并重新安装应用程序(它可能有效)并在浏览器中加载 url(检查 url 返回 json 但在它返回之前?)

于 2012-06-21T10:05:55.437 回答