URL-соединение для не-HTTTP-соединений - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь понять, когда использовать класс URLConnection и когда использовать класс HttpURLConnection.Проведя некоторые исследования, я узнал, что URLConnection используется для соединений, отличных от HTTP, а HttpURLConnection используется для определенных соединений HTTP.Может ли кто-нибудь помочь мне узнать, что означают эти соединения неHTTP?

PS - Обратите внимание, что мой qn не касается отношений наследования классов URLConnection и HttpURLConnection.

Это касается того, что делаютмы имеем в виду соединения неHTTP (которые могут обрабатываться классом URLConnection).Не-HTTTP-соединение означает соединение датаграммы, FTP-соединение или что-то еще. См. Ниже веб-сайт:

https://www.experts -exchange.com / questions / 21420009 / URLConnection-and-HttpURLConnection.html

1 Ответ

0 голосов
/ 25 августа 2018

URLConnection - это абстрактный класс, представляющий любое соединение с URL-адресом.

HttpURLConnecton - это URLConnection (подкласс) и предлагает больше методов.

При этом можно открытьURL с протоколом HTTP и присвойте возвращаемое значение URLConnection, но вам не хватит более специфических методов.

Вы можете открыть URL для ресурса ftp или что-нибудь еще и назначить результат дляURLConnection, но он может не поддерживать базовый протокол.Например, поддержка FTP очень ограничена.

См. Документацию для URL.openConnection () :

Если для протокола URL (например, HTTP илиJAR), существует открытый, специализированный подкласс URLConnection, принадлежащий одному из следующих пакетов или одному из их подпакетов: java.lang, java.io, java.util, java.net, возвращаемое соединение будет из этого подкласса.Например, для HTTP будет возвращено HttpURLConnection, а для JAR будет возвращено JarURLConnection.

Итак, да, используйте HttpURLConnection для HTTP-соединения и любого специального специализированного URLConnection или используйте необработанный URLConnectionиначе.Это, как говорится, зависит от того, с каким протоколом вы хотите работать - вам может понадобиться более полный клиент для любого нетривиального протокола.

...