Мне нужно установить время ожидания для Http-запроса, который мы отправляем службе (не веб-службе). Мы используем HTTP-клиент Apache.Я добавил эти 2 строки кода, чтобы установить время ожидания при запросе и ответе на сервис.
HttpConnectionParams.setConnectionTimeout(params, 10000);
HttpConnectionParams.setSoTimeout(params, 10000);
1) В настоящее время я установил 10 секунд в качестве времени ожидания, так как я вижу, что ответ приходит от службы почти мгновенно. Должен ли я увеличить или уменьшить время?
2) Что произойдет, если ответ займет более 10 секунд? Будет ли это вызывать исключение и какое это будет исключение? Есть ли что-нибудь еще, что мне нужно добавить, чтобы установить время ожидания в приведенном ниже коде.
public HashMap<String, Object> getJSONData(String url) throw Exception{
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, 10000);
HttpConnectionParams.setSoTimeout(params, 10000);
HttpHost proxy = new HttpHost(getProxy(), getProxyPort());
ConnRouteParams.setDefaultProxy(params, proxy);
URI uri;
InputStream data = null;
try {
uri = new URI(url);
HttpGet method = new HttpGet(uri);
HttpResponse response = httpClient.execute(method);
data = response.getEntity().getContent();
}
catch (Exception e) {
e.printStackTrace();
}
Reader r = new InputStreamReader(data);
HashMap<String, Object> jsonObj = (HashMap<String, Object>) GenericJSONUtil.fromJson(r);
return jsonObj;
}