Следует ли использовать java.net.HttpURLConnection как org.apache.http.client.HttpClient? - PullRequest
3 голосов
/ 21 сентября 2011

Я все еще вижу, как люди используют HttpURLConnection для связи с веб-сайтами.Этот форум также имеет много вопросов, связанных с HttpURLConnection.Теперь HttpClient от Apache может достичь почти всего, что может HttpURLConnection, с гораздо меньшим, чистым и эффективным кодом.Мой вопрос:

  1. Как разработчик, мы должны препятствовать использованию HttpURLConnection в целом?
  2. Существуют ли случаи использования, в которых использование HttpURLConnection должно быть предпочтительнее, чем HttpClient?

Ответы [ 2 ]

5 голосов
/ 21 сентября 2011

Как разработчик, мы должны препятствовать использованию HttpURLConnection в целом?

Нет, я бы этого не видел.

Существуют ли случаи использования, в которых использование HttpURLConnection должно быть предпочтительнее, чем HttpClient?

Для действительно простых случаев использования, когда HttpURLConnection выполняет работу достаточно хорошо, я бы не стал включать какую-либо зависимость ради нескольких строк более понятного кода.

Для любой другой ситуации, которую я бы сказал, используйте HttpClient: -)


Это обоснование справедливо для всех сторонних библиотек Java. Если это ограниченный сценарий, и если стандартный API делает работу достаточно хорошо, продолжайте. В противном случае всегда используйте библиотеки, которые облегчат вашу жизнь. Сравните, например,

  • Caldenar / Date против JodaTime
  • Стандартные классы API Collection против Guava / Apache Commons
  • Библиотека на ваш выбор по сравнению со стандартным Java-аналогом.
2 голосов
/ 21 сентября 2011

Если у вас есть все возможности исходного кода, вы должны предпочесть HttpClient. Это намного лучше, чем HttpURLConnection, предлагает больше функциональности и обслуживает такие вещи, как перенаправления для вас.

В очень простых случаях его использование может оказаться чрезмерным. Также может возникнуть ситуация, когда вам не разрешено использовать стороннюю библиотеку. Это единственные причины, по которым я могу не отдавать предпочтение HttpClient.

...