通过fiddler抓到的包导出到pytham转化成yml文件运行,报错:HTTPSConnectionPool(host='api.weixin.qq.com', port=443): Max retries exceeded with url: /cgi-bin/token?appid=wx74a8627810cfa308&grant_ type=client_credential&secret=e40a02f9d79a8097df497e6aaf93ab80 (Caused by ProxyError('Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong versio n number (_ssl.c:1076)'))))怎么修改
时间: 2024-04-07 20:28:26 浏览: 174
这个错误是由于在使用 HTTPS 连接时,代理服务器只支持 HTTP 连接而不支持 HTTPS 连接引起的。解决这个问题,你需要在你的请求中指定代理服务器使用的协议类型。你可以使用 `proxies` 参数来指定代理服务器使用的协议类型。例如:
```
import requests
proxies = {
'http': 'http://yourproxy.com',
'https': 'http://yourproxy.com'
}
response = requests.get(url, proxies=proxies)
```
在上面的代码中,我们将 `proxies` 参数设置为一个字典,其中包含两个键值对,分别对应 HTTP 和 HTTPS 协议类型的代理服务器地址。你需要将 `http` 和 `https` 的值修改为你实际使用的代理服务器地址。
相关问题
<urlopen error [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1122)> HTTPSConnectionPool(host='192.168.3.150', port=8088): Max retries exceeded with url: /prod-api/ocrtp/callback (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1122)')))
### 解决 Python 中使用 `requests` 库时遇到的 SSL 错误
当遇到类似于 `requests.exceptions.SSLError: HTTPSConnectionPool(host='www.zhipin.com', port=443)` 的错误提示,并且具体原因是 `[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1091)` 时,这通常意味着客户端与服务器之间的 SSL/TLS 协议握手失败。
#### 可能的原因及解决方案:
- **抓包工具干扰**:如果正在运行诸如 Charles 或 Fiddler 等 HTTP/HTTPS 流量捕获软件,则可能会导致此类问题。关闭这些应用程序可以解决问题[^4]。
- **不兼容的安全协议版本**:某些旧版服务可能仅支持特定版本的 TLS 而不是最新的标准。可以通过指定较低版本的TLS来尝试连接:
```python
import ssl
from urllib.request import Request, urlopen
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT@TLS1.2') # 强制使用TLS1.2
response = requests.get(url, verify=False, timeout=(3.05, 27), headers=headers, stream=True, allow_redirects=True, proxies=None, cert=None, json=None, params=None, hooks=None, auth=None, session=session, config=config, cookies=cookies, files=file_data, data=post_data, timeout=timeout_value, context=ctx)
```
- **系统时间不同步**:确保本地计算机的时间准确无误,因为证书验证依赖于正确的时间戳记。
- **自定义 CA 认证文件路径**:有时默认的信任链不足以认证远程站点的身份;这时可提供自己的CA bundle 文件给 `verify` 参数:
```python
response = requests.get(url, verify='/path/to/certfile')
```
- **禁用 SSL 验证(谨慎使用)**:虽然这不是推荐的做法,但在开发环境中为了快速测试目的可以选择忽略 SSL 检查:
```python
response = requests.get(url, verify=False)
```
需要注意的是,在生产环境下应始终启用并严格配置 SSL 安全措施以保护数据传输安全。
fiddler 报错 The system proxy was changed. Click to reenable capturing
对于这个问题,你可以尝试以下几种方法来解决:
1. 确保你的网络设置正确:打开 Fiddler,点击 "Tools"(工具)菜单,然后选择 "Options"(选项)。在 "Gateway"(网关)选项卡中,确保 "Use system proxy"(使用系统代理)选项被勾选。
2. 检查代理设置:打开你的系统设置,查看代理设置是否已更改。如果设置了代理,请确保代理服务器地址和端口正确且与 Fiddler 的设置一致。
3. 重启 Fiddler:尝试关闭并重新打开 Fiddler,然后再次尝试捕获流量。
4. 检查其他应用程序:某些应用程序可能会自动更改系统代理设置。请检查其他可能导致代理更改的应用程序,并将其设置为不使用代理。
5. 更新 Fiddler:确保你正在使用最新版本的 Fiddler。有时,更新软件可以修复一些已知的问题和错误。
如果以上方法都不起作用,你可以尝试在 Fiddler 的官方论坛或社区中搜索类似的问题,并寻求其他用户的帮助和建议。
阅读全文
相关推荐













