ValueError: check_hostname 需要使用 Fiddler 4 的 server_hostname

2023-12-06

This question最近刚刚发布的有一些有用的答案,但与我的不一样。我正在从 ArcGIS Pro Notebook 运行 urllib3 1.26.4 和 Python 3.7。我还打开了 Fiddler 4,因为我想在对脚本进行故障排除时跟踪网络流量。仅当我打开 Fiddler 时,才会出现以下错误。如果我关闭 Fiddler 我会得到<Response [200]>。是不是不能使用requestsFiddler 打开的模块?我是 Fiddler 新手。

截断的脚本:

import requests

#url
idph_data = 'https://idph.illinois.gov/DPHPublicInformation/api/covidVaccine/getVaccineAdministrationCurrent'
#headers
headers = {'user-agent': 'Mozilla/5.0'}

response = requests.get(idph_data, headers=headers, verify=True)

Error:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
In  [35]:
Line 4:     response = requests.get(idph_data,verify=True)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\requests\api.py, in get:
Line 76:    return request('get', url, params=params, **kwargs)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\requests\api.py, in request:
Line 61:    return session.request(method=method, url=url, **kwargs)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\requests\sessions.py, in request:
Line 542:   resp = self.send(prep, **send_kwargs)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\requests\sessions.py, in send:
Line 655:   r = adapter.send(request, **kwargs)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\requests\adapters.py, in send:
Line 449:   timeout=timeout

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\urllib3\connectionpool.py, in urlopen:
Line 696:   self._prepare_proxy(conn)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\urllib3\connectionpool.py, in _prepare_proxy:
Line 964:   conn.connect()

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\urllib3\connection.py, in connect:
Line 359:   conn = self._connect_tls_proxy(hostname, conn)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\urllib3\connection.py, in _connect_tls_proxy:
Line 506:   ssl_context=ssl_context,

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\urllib3\util\ssl_.py, in ssl_wrap_socket:
Line 432:   ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\urllib3\util\ssl_.py, in _ssl_wrap_socket_impl:
Line 474:   return ssl_context.wrap_socket(sock)

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\ssl.py, in wrap_socket:
Line 423:   session=session

File C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\ssl.py, in _create:
Line 827:   raise ValueError("check_hostname requires server_hostname")

ValueError: check_hostname requires server_hostname
---------------------------------------------------------------------------

我在当前版本的 ArcGIS Pro 提供的环境中也遇到了这个问题。根据您链接的问题中评分较低的答案,我跑了pip install urllib3==1.25.11在所需的环境中(在我的例子中是默认环境的克隆),问题似乎已得到解决。

这显然是由于新功能urllib3ArcGIS Pro 提供的版本。上面的命令降级到相对较新但有效的版本。新版本中不会解决此问题urllib3,但是目前有一个拉取请求等待解决 Python 本身的根本问题。

顺便说一句,虽然可以配置pip为了能够通过 fiddler 代理运行,这并不是太容易,因此最好在运行任何 pip 命令时关闭 Fiddler。

找到相关的错误报告here。问题似乎是 CPython/内置解析 Windows 系统代理设置的方式存在一个非常古老的错误urllib,导致与 https URL 一起使用的代理条目始终接收 HTTPS 前缀(而不是 HTTP)。较新版本的urllib3实际上支持通过 HTTPS 使用代理,而以前并非如此。所以之前,urllib3会忽略前缀,但现在,它尝试使用 HTTPS 与 HTTP url 进行通信。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ValueError: check_hostname 需要使用 Fiddler 4 的 server_hostname 的相关文章

随机推荐

  • 如何使用实体框架代码优先迁移删除唯一索引

    我正在使用启用了 Code First 迁移的 Entity Framework 5 0 我使用以下方法添加了唯一键 CreateIndex dbo Groups Name true 现在我想使用下一个迁移的 Down 方法删除现有的唯一键
  • 从资产库 URL 获取 NSData

    我正在尝试从设备库的 mp4 文件获取 NSData 这个链接看起来像这样 assets library asset asset mp4 id 32515720 939A 456F 958F 0B2F397416EB ext mp4 我试过
  • JavaScript 按钮停止页面上的所有音频

    我正在使用 mixlr com 的嵌入播放器来播放音频 现在我需要一个按钮来停止整个网站的音频 尽管播放器有自己的播放暂停按钮 但我需要自己的按钮来控制整个网站的音频 如果我单击暂停按钮 它将暂停整个网站的音频 有人可以帮我吗 一键暂停所有
  • R 中多行的一次热编码

    假设我有以下格式的数据 ID VALUE a a a b d b d c 我想做的是对 ID 值进行一次热编码 当我使用model matrix 我得到 model matrix VALUE 1 df ID aVALUE bVALUE cV
  • 使用数据库优先方法时覆盖或替换默认构造函数

    我们使用数据库优先的方法来创建 MVC 模型 这意味着框架会在主模型中自动生成默认构造函数 cs文件 然而 我想设置几个默认值 问题是这个框架每次都会为此模型生成一个基本的 cs 文件 edmx已更新 有什么方法可以在部分类中重写此构造函数
  • 使用 Maven 构建 Groovy 项目时出现源错误

    我正在尝试使用 maven 构建我的第一个 groovy 项目 但我从 maven 收到以下错误 它是某种类型的源错误 但我不明白为什么我会收到它 INFO BUILD FAILURE INFO INFO Total time 3 186s
  • IntelliJ的Scala增量编译什么时候发生?

    IntelliJ的Scala增量编译什么时候发生 我注意到对文件进行更改不会导致相应的 class 文件 在 target 中 被更新 什么时候会发生这种情况 我认为你误解了 Scala 增量编译的工作原理 有两种不同的东西可以称为 Int
  • 访问VBA:查找列中的最大数字并加1

    在我的 Access 数据库中 我有一个名为 Demande 的表 我想读取 Numero de Commande 列中的所有记录并读取该列中最大的数字 以便我可以将该数字用于下一个新记录 这是我的桌子 关键索引是针对 Numero de
  • Windows Azure 与.NET 2.0 框架兼容吗?

    我有一个在 NET 2 0 框架中开发的服务 它安装在多个站点中并与我的应用程序一起使用 我希望该服务能够向我 报告 有关该应用程序的某些信息 我想看看 Windows Azure 是否可以让我将报告存储在云数据库中 并在需要时提取它们 我
  • 重写 WinForm ListView 控件上的 Drawitem 事件

    我希望 ListView 的所选项目在焦点丢失时保持清晰可见 在 Windows 7 上为暗灰色 我确实将 HideSelection 属性设置为 False 我想对列表视图执行某人对 TreeView 控件所做的操作 即重写 Drawno
  • Kubernetes 中具有子域重定向的通配符 SSL 证书

    我已将 Kubernetes 配置为使用 cert manager 和 LetsEncrypt 对我的所有应用程序使用一个通配符 SSL 证书 现在的问题是我无法配置子域重定向 因为 Ingress 有点 僵硬 以下是我试图实现这一目标的方
  • 将 char 存储到 int 变量中

    我正在学习 C 中的隐式转换 我读了下面的例子 char a std cin gt gt a I can enter an integer like 56 here std cout lt
  • 当我尝试使用最新的依赖项构建 Maven 空手道项目时出现编译错误

    I m new to Karate API automation tool and just try to set up the tool I m getting Compilation errors when I try to compi
  • 使用 setRepeating() 方法了解下一个闹钟时间

    我有时会在上午 9 00 下午 1 00 晚上 7 00 等时间设置 3 个待处理意图 这些意图每天使用 setRepeating 方法递归触发 这里我将所有这些待处理的意图唯一请求代码保存在本地 SQLite 数据库中 在这里 每当触发警
  • FFREE ST(i) 修改 x87 标记字中的哪些位?

    这个例子是用 NASM 编写的 section bss var28 resb 28 section text main Initialize finit fldpi Read Tag Word fstenv var28 mov ax var
  • 闭包中引用的生命周期

    我需要一个闭包来引用其封闭环境中的对象的一部分 该对象是在环境中创建的 并且范围仅限于该环境 但一旦创建 它就可以安全地移动到闭包中 用例是一个函数 它执行一些准备工作并返回一个将完成其余工作的闭包 这种设计的原因是执行限制 第一部分工作涉
  • 向量的数值导数

    我遇到一个向量 x Nx1 相对 于另一个与 x 大小相同的向量 t 时间 的数值导数的问题 我执行以下操作 以 x 被选为正弦函数为例 t t0 ts tf x sin t xd diff x ts 但答案 xd 是 N 1 x1 并且我
  • 删除名称以特定字符串开头的所有表

    如何删除名称以给定字符串开头的所有表 我认为这可以通过一些动态 SQL 来完成INFORMATION SCHEMA tables 如果数据库中有多个所有者 您可能需要修改查询以包含所有者 DECLARE cmd varchar 4000 D
  • 为 WebGL 示例嵌入 ChakraHost (c#)

    我研究了涉及嵌入 javascript 框架 paper js 的示例 用于通过 ChakraHost 的 JsBridge 实现将输出绘制到 XAML 的 CanvasControl 要包含 paper js 框架和调用该框架的 java
  • ValueError: check_hostname 需要使用 Fiddler 4 的 server_hostname

    This question最近刚刚发布的有一些有用的答案 但与我的不一样 我正在从 ArcGIS Pro Notebook 运行 urllib3 1 26 4 和 Python 3 7 我还打开了 Fiddler 4 因为我想在对脚本进行故