HttpClient - Установка «глобального» разъема сокета и отдельную тайм-аут на запрос

StackOverflow https://stackoverflow.com/questions/3003235

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top