You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何强制使用纯HTTP发起REST请求而非HTTPS?

我来帮你搞定这个问题!看起来你的Python库在请求http://bot时,莫名其妙被强制转到HTTPS了,这大概率是请求被重定向、DNS解析或者本地配置搞的鬼。不过没关系,咱们直接从代码层面入手,让requests和httplib2老老实实用纯HTTP连接。

针对requests库的解决方案

你遇到的SSLError,本质是请求被自动重定向到HTTPS了,哪怕你写的是http://。咱们有两种处理方式:

方法1:直接禁用自动重定向

不让requests跟着服务的重定向指令走,直接访问你指定的HTTP地址:

import requests
url = 'http://bot'
# 禁用自动重定向,避免被跳转到HTTPS
r = requests.get(url, allow_redirects=False)
# 可以打印状态码看看,如果是3xx开头,说明服务确实在发重定向
print(r.status_code)

方法2:必须跟随重定向?那就跳过SSL验证(仅限开发环境)

如果你的本地服务非要把HTTP请求重定向到HTTPS,但你又不想折腾证书,那可以临时关闭SSL验证——注意:这只适合开发环境,生产环境绝对不能这么干!

import requests
url = 'http://bot'
# 关闭SSL验证,同时允许重定向
r = requests.get(url, verify=False, allow_redirects=True)
# 万一重定向后的URL是HTTPS,咱们手动改回HTTP再请求一次
if r.url.startswith('https://'):
    r = requests.get(r.url.replace('https://', 'http://'), verify=False)

针对httplib2库的解决方案

httplib2默认会严格验证SSL证书,一旦请求被重定向到HTTPS,就会触发证书验证失败的错误。咱们同样有两种办法:

方法1:直接关闭SSL证书验证

创建Http对象时,加上disable_ssl_certificate_validation=True参数,跳过证书检查:

import httplib2
url = 'http://bot'
# 禁用SSL证书验证
http = httplib2.Http(disable_ssl_certificate_validation=True)
response, content = http.request(url, "GET")

方法2:手动处理重定向,强制用HTTP

如果是重定向导致的问题,咱们可以自己接管重定向逻辑,把HTTPS的跳转地址改回HTTP:

import httplib2
url = 'http://bot'
http = httplib2.Http(disable_ssl_certificate_validation=True)
# 先禁用自动跟随重定向,看看是不是有跳转
response, content = http.request(url, "GET", follow_redirects=False)
# 检查状态码,3xx都是重定向
if response.status in [301, 302, 303, 307, 308]:
    redirect_url = response['location']
    # 把HTTPS开头的地址改成HTTP
    if redirect_url.startswith('https://'):
        redirect_url = redirect_url.replace('https://', 'http://')
    # 再请求修改后的HTTP地址
    response, content = http.request(redirect_url, "GET")

额外排查小技巧

  1. 先用curl -v http://bot看看请求全过程,确认是不是服务本身在发HTTPS重定向。
  2. 试试直接用服务的IP访问(比如http://127.0.0.1),排除bot域名解析的问题。
  3. 检查本地有没有代理、防火墙或者VPN,这些工具可能会偷偷把HTTP转成HTTPS。

内容的提问来源于stack exchange,提问作者Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:28:12