デバイス WiFi を使用してリクエストを送信するシナリオがあります。このシナリオでは、WiFi は接続されていますが、WiFi はさらにインターネットに接続されていません。この場合、HTTP 要求を送信しますが、HTTPResonse の応答は非常に遅くなります。デバイスが WiFi に接続されていて、WiFi がインターネットに接続されている場合、正常に動作します。
リクエストの最初のシナリオ コードで応答時間を短縮する必要があります。
public String[] doHttpGetWithCode(String url, HashMap<String, String> headerParam) throws Exception {
String[] result = new String[2];
HttpGet httpget = new HttpGet(url);
HttpResponse response;
int timeoutConnection = 3000;
int timeoutSocket = 5000;
HttpParams httpParameters = new BasicHttpParams();
DefaultHttpClient httpclient = new DefaultHttpClient(httpParameters);
httpget.addHeader("language", Constants.DEVICE_LANGUAGE);
Iterator myIterator = headerParam.keySet().iterator();
while(myIterator.hasNext()) {
String key=(String)myIterator.next();
String value=(String)headerParam.get(key);
httpget.addHeader(key, value);
}
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
result[0] = response.getStatusLine().getStatusCode()+"";
result[1] = sb.toString();
return result;
}
これ以上インターネットに接続できないテスト WiFi を使用しています。この場合、次のコード行には多くの時間がかかります。
response = httpclient.execute(httpget);
応答時間を短縮する必要があります よろしくお願いします