Оптимизация HttpURLConnection в Android - PullRequest
       1

Оптимизация HttpURLConnection в Android

2 голосов
/ 07 сентября 2010

эта проблема меня беспокоит:

HttpURLConnection con = (HttpURLConnection)new URL(url).openConnection();
con.setRequestMethod("HEAD");
 if (con.getResponseCode()!=200 ){dosomething()}

Это правильный способ установки метода запроса или уже слишком поздно, так как я вызвал URL.openConnection (), и он уже установил соединение, используя значение по умолчанию GET?

Я не могу вызвать setRequestMethod ("HEAD") в той же строке, что и openConnection, потому что он возвращает URLConnection, а не HttpURLConnection.

Итак, как мне убедиться, что метод всегда будет HEAD, зная, что по умолчанию используется GET?

Должен ли я просто использовать HttpClient?

1 Ответ

2 голосов
/ 07 сентября 2010

Это правильный метод.

Вызов openConnection() на самом деле ничего не делает.Запрос не «передается» (то есть, на сервер ничего не отправляется), пока вы не запросите что-то, что возвращается в ответе сервера, например, тело ответа (con.getInputStream()), статус (con.getResponseCode())) или какой-то другой заголовок ответа.Это дает вам время для установки параметров на HttpUrlConnection, например, планируете ли вы отправить тело запроса (например, POST), установить метод запроса и т. Д.

Кстати, вы могли бы установить метод "в той же строке", но находиться в той же строке бессмысленно: либо openConnection() отправляет метод запроса, либо нет.Вызовы методов, которые происходят после, не имеют значения, независимо от того, на какой линии они находятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...