urllib2:读取 https url 失败

2023-12-25

此代码在我的 Ubuntu 上失败,但在其他主机上运行良好。

>>> from urllib2 import urlopen
>>> urlopen("https://courtapps.utcourts.gov/XchangeWEB/login")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 400, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 418, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1215, in https_open
    return self.do_open(httplib.HTTPSConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1177, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 1] _ssl.c:504: error:1408F119:SSL 
routines:SSL3_GET_RECORD:decryption failed or bad record mac>

这是什么原因以及如何解决?我觉得有些不对劲OpenSSL, have v1.0.1安装。


自定义 SSLv3 处理程序解决了该问题:

import httplib, ssl, urllib2, socket
class HTTPSConnectionV3(httplib.HTTPSConnection):
    def __init__(self, *args, **kwargs):
        httplib.HTTPSConnection.__init__(self, *args, **kwargs)

    def connect(self):
        sock = socket.create_connection((self.host, self.port), self.timeout)
        if self._tunnel_host:
            self.sock = sock
            self._tunnel()
        try:
            self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_SSLv3)
        except ssl.SSLError, e:
            print("Trying SSLv3.")
            self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_SSLv23)

class HTTPSHandlerV3(urllib2.HTTPSHandler):
    def https_open(self, req):
        return self.do_open(HTTPSConnectionV3, req)

# install opener
urllib2.install_opener(urllib2.build_opener(HTTPSHandlerV3()))

if __name__ == "__main__":
    r =   urllib2.urlopen("https://courtapps.utcourts.gov/XchangeWEB/login")
    print(r.read())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

urllib2:读取 https url 失败 的相关文章

随机推荐

  • 如何更改 Android 中 Spinner 控件的下拉箭头箭头?

    我正在编写一个 Android 应用程序 其中使用 Spinner Control 我通过创建自己的列表来自定义微调器控件 我想更改微调器控件旁边的下拉箭头 谁能帮助我如何更改微调控件的下拉箭头 我想用自己的箭头图像替换该箭头 您必须创建一
  • Assembly.GetTypes() 抛出异常

    装配有什么作用GetTypes 做幕后 假设程序集已加载到AppDomain还需要从物理DLL中读取吗 大会清单有什么作用 像这样迭代整个程序集 AppDomain CurrentDomain GetAssemblies SelectMan
  • 在 GNU Make 中创建逗号分隔列表

    我有一个带有一组布尔值的 Makefile 必须使用它们来控制外部应用程序的标志 问题是该标志必须作为逗号分隔的字符串传递 像这样的东西 非工作伪代码 WITH LIST WITHOUT LIST ifeq BOOL A y Append
  • 简单的引用计数:智能指针

    我想使用智能指针实现简单的引用计数 变量pointer表示指向存储对象的指针 reference count表示对象的副本总数 如果我们使用 NULL 初始化一个对象 reference count 1 else reference cou
  • NGINX try_files 不传递给 PHP

    我有一个非常简单的 PHP 网站 about php index php project project one php project two php projects php 以及以下 nginx 配置 仅显示相关部分 location
  • 如何调试 POST 请求上的 net::err_failed/415 Unsupported Media Type 错误?

    我们有一个 API 由我们团队的后端开发人员制作 我正在尝试在 Vue 应用程序中使用它 之前我已经成功做了一些GET通过以下方式向 API 发出请求axiosHTTP客户端 https github com axios axios 所以我
  • 为什么允许指向不完整类型的指针而不是不完整类型的变量?

    为什么以下内容是合法的 typedef struct a aType struct a int x aType b 以及以下违法行为 void main typedef struct a aType aType someVariable s
  • 如何更改 CTabCtrl 选项卡颜色?

    你好 新年快乐 周四之前说是可以接受的 我正在尝试更改选项卡的颜色CTabCtrl班级 我正在尝试创建自己的 ReskinCTablCtrl 以便我可以在单独的类中调用它并在整个程序中轻松使用它 目前我可以更改背景颜色CTabCtrl但我无
  • MATLAB 库与现有库冲突 - CMake 崩溃

    我正在 Ubuntu 16 04 64 位机器上处理 C 代码 作为代码的一部分 我必须调用 Matlab 我使用 libmat 和 libmx 库来实现 当向 CMake 提供这些库的路径时 我收到 CMake 的警告 指出现有库可能会发
  • 如何正确pickle一个namedtuple实例

    我正在学习如何使用泡菜 我创建了一个命名元组对象 将其附加到一个列表中 并尝试腌制该列表 但是 我收到以下错误 pickle PicklingError Can t pickle
  • log4j:ERROR 转换日期时发生错误

    我在日志中发现了这个异常 log4j ERROR 转换日期时发生错误 java lang NullPointerException 在 java lang System arraycopy 本机方法 在 java lang Abstract
  • 在前端翻译我的 magento 自定义模块

    我已经做了一个 magento 自定义模块 我想为其进行翻译 我怎样才能做到这一点 而不创建另一个翻译模块 多谢 您可以使用内置的翻译方法并在模板中定义所有字符串 如下所示 如果您需要在类或块中使用字符串 您可以从辅助类中获取上下文 如下所
  • 连接两个表后访问所有数据并使用 linq 将它们分组

    我有两张桌子 TableA aId aValue TableB bId aId bValue 我想通过以下方式加入这两个表aId 然后从那里将它们分组bValue var result from a in db TableA join b
  • 添加一个新列并用 Oracle SQL 中另一列的一部分填充它

    我想在表中添加一个新列 并用另一列的最后 3 个字符填充它 两者都是 varchar 源列应保持不变 我想避免创建临时列 而是想了解如何在单个查询中执行此操作 谢谢 最好使用虚拟列 https oracle base com article
  • Ajax 侦听器事件 valueChange 似乎触发 onClick 而不是 onChange

    我有一个想要显示的嵌套问题列表 最初 我显示 1 级问题 然后根据用户对其父问题的回答显示子问题 所有问题都有一个单选按钮 有些问题有一个输入框 用于在用户选择 是 时显示附加信息 这是我的带有嵌套数据表的 JSF 代码 请注意 我已经取消
  • 克服 x86 idiv #DE 异常

    回复 x86 汇编语言 我有三个 32 位有符号数 n1 n2 和 n3 我想对 n1 乘以 n2 进行 imul 以获得 64 位带符号的结果 然后我想将该 64 位结果除以 n3 问题是 如果 64 位有符号结果足够大和 或 n3 足够
  • React 原生深度链接与 Facebook SDK 冲突

    我在我的react native应用程序中使用Facebook SDK 现在我还想添加对通用深度链接的支持 我按照此处的说明修改了我的应用程序委托 https developers facebook com docs ios getting
  • 使用 HttpServletRequest 获取请求发送者的 URL

    如何使用 HttpServletRequest 获取源域 源域是请求者的域 Thanks 你可以做任何一个 gets client browser s hostname String host request getRemoteHost O
  • 如何禁用按下按键时列表框自动选择项目

    我有一个列表框 我想在该列表框中复制并粘贴项目 复制和粘贴工作正常 但每次我按 Crtl C 时 都会自动选择以字母 C 开头的项目 可以禁用此自动选择还是我在这里遗漏了一些东西 这是我实现的复制粘贴方法 private void list
  • urllib2:读取 https url 失败

    此代码在我的 Ubuntu 上失败 但在其他主机上运行良好 gt gt gt from urllib2 import urlopen gt gt gt urlopen https courtapps utcourts gov Xchange