Да, urllib2
использует HTTPSConnection
(или любой тип соединения, подходящий для протокола) в своей реализации. По сути, это всего лишь быстрый способ сделать самое обычное, что люди делают с httplib
.
urllib2
также имеет некоторый код для обработки таких вещей, как перенаправления и запросы аутентификации, все, что вам может понадобиться кодировать вручную, если вы делаете это с простым httplib
.
РЕДАКТИРОВАТЬ : В ответ на комментарий Майкла, если вы задаетесь вопросом об объекте и данных ... это зависит от того, что вы собираетесь с ним делать. Если вам нужен объект соединения (например, чтобы сделать с ним что-то особенное, может быть, соединение keepalive), тогда, конечно же, используйте способ httplib
и верните объект соединения. Но если вы просто пытаетесь получить данные, просто получите данные и верните их. Если вам нравится ООП, знайте, что все в Python технически является объектом; то, что вы получаете от urllib2.urlopen
, является файловым объектом, который имеет методы для извлечения его значения в виде строкового объекта или списка строк (также строковых объектов). Я думаю, что большинство программистов на Python сочли бы бесполезным использование httplib
в последнем случае.