gpt4 book ai didi

python - 代码在 Linux 上运行良好但在 OSX 上崩溃

转载 作者:太空狗 更新时间:2023-10-29 11:22:23 26 4
gpt4 key购买 nike

我在 OSX Mavericks 上运行并安装了 python 3.3.3。

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 与 cookie),但它因未知错误而崩溃:

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

所以我认为代码是正确的。

此外,当我将 HTTPS 的系统代理设置为使用 Fiddler 的代理时,代码在我的 Mac 上运行。

这是回溯 pastebin .

我错过了什么?这与 OSX、python、HTTPS 服务器或我的 mac 有什么关系吗?与服务器握手时出现问题,但我不知道为什么它在 Linux 上有效。

最佳答案

强烈建议您从 urllibs 迁移到 python 请求模块。

说真的,花 5 分钟来轻松安装/pip 并移植您的代码是值得的。它将以更优雅的方式处理大多数 SSL 问题,并减少痛苦。

关于python - 代码在 Linux 上运行良好但在 OSX 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20157456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com