Как закрыть HTTP-соединение с okhttp?

Как можно сообщить OkHttp, что соединение с HTTP-сервером должно быть закрыто после завершения запроса?

Предположим, я использую следующий код, чтобы сделать запрос на google.com

OkHttpClient cl = new OkHttpClient();
Request req = new Request.Builder()
              .url("http://www.google.com")
              .header("Connection", "close")
              .get()
              .build();
Response res = cl.newCall(req).execute();
System.out.println("Response message: " + res.message());
System.out.println("Reponse body: " + res.body().string());

с помощью «Соединение: закрыть» я могу заставить удаленный сервер отправить FIN (если я этого не сделаю, удаленный сервер просто зависнет в ожидании новых запросов). Тем не менее, на стороне клиента не создается FIN, и соединение остается полуоткрытым, по-видимому, неопределенное время.


person bmarcov    schedule 05.06.2014    source источник


Ответы (1)


Тьфу, это регресс в OkHttp 2.0.0-RC1. Fix находится на рассмотрении.

person Jesse Wilson    schedule 06.06.2014
comment
Я понимаю. В любом случае, установка Connection: close должна быть правильным способом закрыть соединение после завершения запроса? - person bmarcov; 06.06.2014