Несколько месяцев назад я спешно собрал программу на Python, которая поразила API веб-сервисов моей компании.Он работал в трех разных режимах:
1) HTTP без аутентификации
2) HTTP с аутентификацией по имени пользователя и паролю
3) HTTPS с аутентификацией сертификата клиента
Я получил 1) для работы с urllib, но столкнулся с проблемами с 2) и 3).Вместо того чтобы выяснить это, я в итоге вычислил правильные параметры командной строки для curl и выполнил его через os.system ().
Теперь я переписываю эту программу с опытом,и я не уверен, стоит ли мне использовать urllib, urllib2 или просто придерживаться curl.
В документации по urllib упоминается:
When performing basic authentication, a FancyURLopener instance
calls its prompt_user_passwd() method. The default implementation
asks the users for the required information on the controlling
terminal. A subclass may override this method to support
more appropriate behavior if needed.
Также упоминается аргумент ** x509 для urllib.URLopener ():
Additional keyword parameters, collected in x509, may be used for
authentication of the client when using the https: scheme. The
keywords key_file and cert_file are supported to provide an SSL
key and certificate; both are needed to support client
authentication.
Но urllib2 больше, чем urllib, поэтому, естественно, я хочу использовать его вместо этого.Документация urllib2 полна информации об обработчиках аутентификации, которые, кажется, предназначены для 2) выше, но не упоминает о клиентских сертификатах.
Мой вопрос: хочу ли я использовать urllib, потому что он, кажется, поддерживаетвсе, что мне нужно для достижения?Или мне просто придерживаться локона?
Спасибо.
Редактировать: Возможно, мой вопрос недостаточно конкретен, так что вот еще один снимок.Могу ли я достичь того, что я хочу сделать с urllib?Или с urllib2?Или я вынужден использовать локон по необходимости?