Когда я использую:Разница между request.GET() и urrlib.request.urlopen() питона
import request
r = request.get("https://example.com")
я получаю следующее исключение:
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)
Однако, если я использую следующий код :
url = "https://www.example.com"
request = urllib.request.urlopen(url)
Это дает мне правильный код ответа [200]. Почему это так? В чем разница между этими двумя методами и какой из них следует отдать предпочтение?
Так исправьте меня, если я ошибаюсь, request.get() [with default verify = true] попытается проверить сертификат, а urllib.request.urlopen() этого не делает. –
все сделано с помощью https-соединения https://docs.python.org/2/library/httplib.html#httplib.HTTPSConnection – wolframalpha
Спасибо, я получил его сейчас. Всегда лучше использовать request.get/post, чтобы он выполнил проверку ssl для вас. Спасибо за разъяснения! –