Я работаю на OSX Mavericks и у вас установлен python 3.3.3.python - код отлично работает на Linux, но падает на OSX
Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin)
Я пытаюсь запустить этот (незаконченную) код (простой HTTPS GET и POST с печеньем), но он падает с неизвестной ошибки:
import urllib.request as rqst
import re
import http.cookiejar
def LoginICorsi():
loginUrl = "https://www2.icorsi.ch/auth/shibboleth/"
rqst.install_opener(rqst.build_opener(rqst.HTTPCookieProcessor(http.cookiejar.CookieJar())))
pageBytes = rqst.urlopen(loginUrl)
pageString = pageBytes.read().decode("utf-8")
action = re.findall(r'action="([^"]*)', pageString)[0]
loginPostUrl = "https://wayf.switch.ch" + action
loginPostUrl = loginPostUrl.replace("&", "&")
print("Posting USI to "+loginPostUrl)
postDATA = "user_idp=https://login2.usi.ch/idp/shibboleth".encode("utf-8")
usiLoginRequest = rqst.Request(loginPostUrl)
usiLoginRequest.add_header("Content-Type", "application/x-www-form-urlencoded")
usiLoginUrl = rqst.urlopen(usiLoginRequest, data=postDATA)
usiLoginResult = usiLoginUrl.read().decode("utf-8")
print(usiLoginResult)
Проблема заключается в том, что этот код работает на Ubuntu
Python 3.3.3 (default, Nov 20 2013, 00:22:18)
[GCC 4.8.2] on linux
поэтому, я полагаю, что код верен.
Кроме того, код работал на моем Mac, когда я установил прокси-сервер для HTTPS на прокси-сервер с Fiddler.
Это трассировка pastebin.
Что мне не хватает? Связано ли это с OSX, python, сервером HTTPS или просто с моим Mac? Проблема возникает при квитировании с сервером, но я не понимаю, почему он работает в Linux.
Как вы установили Python 3.3.3 на свой Mac? Двоичный установщик (если это один из python.org или иначе) или сборка источника (если это так, Homebrew, MacPorts или вручную)? Похоже, проблема связана с модулем 'ssl', и это очень легко получить, если вы, например, создаете, используя рецепт, разработанный для OpenSSL OS X 10.8, но на машине, на самом деле имеющей OS X 10.9. – abarnert
Я загрузил двоичный установщик, http://www.python.org/ftp/python/3.3.3/python-3.3.3-macosx10.6.dmg –