Мне нужно установить тайм-аут для запроса 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;
}