1

私はHttpClient自分のWebサービスに接続するために使用しています。アプリがこの Web サービスに接続できるかどうかの簡単なチェックを実装したいと考えています。そうでない場合は、特定のメッセージが表示されるようにします。これは私がそれを達成しようとする方法です:

public static JSONObject getJson(String url) {
    StringBuilder builder = new StringBuilder();
    HttpClient client = new DefaultHttpClient();
    HttpGet get = new HttpGet(url);

    try {
        HttpResponse response = client.execute(get);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if(statusCode == 200) {
            HttpEntity entity = response.getEntity();
            InputStream content = entity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(content));
            String line;
            while((line = reader.readLine()) != null) {
                builder.append(line);
            }
        }
        String json = builder.toString();
        JSONObject jsonObject = new JSONObject(json);
        return jsonObject;
    } catch (Exception e) {
        showErrorMessage();
    } 

    return null;
}

できます。インターネットに接続していない場合、 を呼び出そうとすると例外がスローされますclient.execute()が、問題は、この例外がすぐにスローされる場合と、スローされるまでに 2 分ほどかかる場合があることです。

理由は何ですか?特定の時間接続しようとしたことに関連している可能性があると思いますが、アプリケーションで何も変更していないため、とにかく今回は異なります.

4

1 に答える 1