Какой из них хороший способ запросить API?
Вопрос
Всякий раз, когда смотрит на библиотеки API для Python, они, кажется, около половины из них просто используют:
response = urllib2.urlopen('https://www.example.com/api', data)
и около половины используют:
connection = httplib.HTTPSConnection('www.example.com/api')
# ... rest omitted for simplicity
Я склонен думать, что вторая версия «круче» (я предвзято к более оо -подходу к большинству вещей).
Есть ли выгода или причина для использования одного над другим. Или я что -то упускаю по пути. Я подозреваю, что urllib2.urlopen
Использование HTTPSConnection
В своей реализации, поэтому, возможно, он просто меньше кодирования от моего имени. Как бы ни был, я бы полюбил отзывы. Спасибо.
Решение
Ага, urllib2
Использование HTTPSConnection
(Или какое -либо подключение подходит для протокола) в его реализации. Это в основном просто ярлык, чтобы делать самые обычные вещи, с которыми люди делают httplib
.
urllib2
Также есть какой -то код для обработки таких вещей, как перенаправления и запросы на аутентификацию, все, что вам, возможно, придется кодировать вручную, если вы делаете это с простым httplib
.
РЕДАКТИРОВАТЬ: В ответ на комментарий Майкла, если вам было интересно об объекте против данных ... это зависит от того, что вы собираетесь делать с ним. Если вам нужен объект соединения (например, что -то особенное с ним, может быть, соединение), то, конечно, продолжайте и используйте httplib
путь и вернуть объект соединения. Но если вы просто пытаетесь получить данные, просто получите данные и верните их. Если вам нравится ООП, знайте, что все в Python технически является объектом; от чего вы получаете urllib2.urlopen
является файловым объектом, который имеет методы для извлечения его значения в качестве объекта строки или в качестве списка строк (также строковых объектов). Я думаю, что большинство программистов Python считают, что это пустая трата усилий для использования httplib
в последнем случае.