HttpClient - Установка «глобального» разъема сокета и отдельную тайм-аут на запрос
-
25-09-2019 - |
Вопрос
С httpclient я устанавливаю сокет по умолчанию / тайм-аут соединения со следующими:
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setSoTimeout(params, 30000);
HttpConnectionParams.setConnectionTimeout(params, 30000);
mClient = new DefaultHttpClient(connectionManager, params);
Мне интересно, смогу ли я переопределить эти значения на за запрос на запрос?
Редактировать: Будет ли эта работа?
HttpParams params = req.getParams(); // req is an HttpRequest object
HttpConnectionParams.setSoTimeout(params, 60000);
HttpConnectionParams.setConnectionTimeout(params, 60000);
Я попробовал, и кажется, но трудно проверить / создавать ситуацию, когда произойдет время ожидания.
Решение
Если вы используете httpClient 4.0, вы можете сделать это:
mClient = new DefaultHttpClient(connectionManager, params) {
protected HttpParams determineParams(HttpRequest req) {
//Fill in your impl here
}
Другие советы
Вы можете просто установить эти параметры на объекте запроса. Подробнее см.:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d4e391.
Не связан с StackOverflow