Python requests.post()返回406错误的常见原因及解决方案

 更新时间:2025年07月02日 11:05:48   作者:吴尊和  
这篇文章主要介绍了Python requests.post()出现HTTP 406错误的原因,指出服务器无法匹配客户端Accept头要求,解决方案包括检查请求头、数据格式、User-Agent、认证信息及服务器限制,并建议通过调试重定向参数排查问题,需要的朋友可以参考下

解决 Python requests.post() 返回 406 错误

HTTP 406 "Not Acceptable" 错误表示服务器无法生成符合客户端请求中 Accept 头部指定的响应内容。

问题分析,最好的方法还是一段代码一段代码的调试

今天是模型一个登录的脚本,以前都用得好好的,现在突然不行了,出现了406的错误,觉得有点奇怪,代码如下:

header = {'Content-Type':'application/x-www-form-urlencoded',
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36'

form_data = {
    "actionFlag":"login",
    "uid":"xxxxx",
    "password":"xxxxx"
}

data = parse.urlencode(from_data)
response = request.post(url=login_url,header=header, data = data, verify=False)

以前上面这段代码是没有什么问题的,但最近才发现一直是406,跟踪到代码中的 sessions.py中adapter的值是对的,上面是显示访问成功而且返回值是200,这说明访问代码是没有问题的,但什么时候出的问题呢?继续往下

发现了这一段代码,其中allow_redirects的值就有点意思了,这个值的默认值是Ture,但我们登录后,后面肯定有一个redirect的,也就是说后面那个跳转的地址有问题了,所以才会导致出问题

常见原因及解决方案

1. 请求头 (headers) 问题

确保你的请求头中包含正确的 Accept 和 Content-Type

headers = {
    'Accept': 'application/json',  # 或其他服务器期望的类型
    'Content-Type': 'application/json',  # 或其他适当的内容类型
    # 其他必要的头部,如授权信息
}

2. 数据格式问题

确保发送的数据格式与 Content-Type 头部匹配:

import json

data = {'key': 'value'}
response = requests.post(url, data=json.dumps(data), headers=headers)

或者使用 json 参数自动处理:

response = requests.post(url, json=data, headers=headers)

3. 用户代理问题

有些服务器要求特定的 User-Agent:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...',
    # 其他头部
}

4. 认证问题

如果 API 需要认证,确保提供了正确的凭证:

headers = {
    'Authorization': 'Bearer your_token_here',
    # 其他头部
}

5. 服务器端限制

检查 API 文档,确认:

  • 是否支持 POST 方法
  • 是否接受你发送的内容类型
  • 是否有其他特殊要求

完整示例

import requests
import json

url = 'https://api.example.com/endpoint'
headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'User-Agent': 'MyApp/1.0',
    'Authorization': 'Bearer abc123...'
}
data = {'key1': 'value1', 'key2': 'value2'}

try:
    response = requests.post(url, json=data, headers=headers)
    response.raise_for_status()  # 如果响应状态码不是200,抛出异常
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"请求失败: {e}")

如果问题仍然存在,建议:

  1. 检查 API 文档的具体要求
  2. 使用开发者工具查看浏览器发送的成功请求的格式
  3. 联系 API 提供商获取支持

到此这篇关于Python requests.post()返回406错误的常见原因及解决方案的文章就介绍到这了,更多相关Python requests.post()返回406内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python和GDAL给图片加坐标系的实现思路(坐标投影转换)

    使用Python和GDAL给图片加坐标系的实现思路(坐标投影转换)

    这篇文章主要介绍了使用Python和GDAL给图片加坐标系的实现思路(坐标投影转换),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • caffe的python接口deploy生成caffemodel分类新的图片

    caffe的python接口deploy生成caffemodel分类新的图片

    这篇文章主要为大家介绍了caffe的python接口生成deploy文件学习以及用训练好的模型(caffemodel)来分类新的图片示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 解决python脚本中error: unrecognized arguments: True错误

    解决python脚本中error: unrecognized arguments: True错误

    这篇文章主要介绍了解决python脚本中error: unrecognized arguments: True错误,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python脚本实现Web漏洞扫描工具

    Python脚本实现Web漏洞扫描工具

    这是去年毕设做的一个Web漏洞扫描小工具,主要针对简单的SQL注入漏洞、SQL盲注和XSS漏洞。下文给大家介绍了使用说明和源代码,一起看看吧
    2016-10-10
  • python中如何对多变量连续赋值

    python中如何对多变量连续赋值

    这篇文章主要介绍了python中如何对多变量连续赋值的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • OpenCV简单标准数字识别的完整实例

    OpenCV简单标准数字识别的完整实例

    这篇文章主要给大家介绍了关于OpenCV简单标准数字识别的相关资料,要通过opencv 进行数字识别离不开训练库的支持,需要对目标图片进行大量的训练,才能做到精准的识别出目标数字,需要的朋友可以参考下
    2021-09-09
  • 解决python异步框架aiohttp无法使用本地代理问题

    解决python异步框架aiohttp无法使用本地代理问题

    这篇文章主要介绍了解决python异步框架aiohttp无法使用本地代理问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Python中使用装饰器来优化尾递归的示例

    Python中使用装饰器来优化尾递归的示例

    这里我们用典型的斐波那契数列作为例子,来展示Python中使用装饰器来优化尾递归的示例,需要的朋友可以参考下
    2016-06-06
  • python中leastsq函数的使用方法

    python中leastsq函数的使用方法

    这篇文章主要介绍了python中leastsq函数的使用方法,leastsq作用是最小化一组方程的平方和,下面文章举例说明详细内容,具有一的参考价值,需要的小伙伴可以参考一下
    2022-03-03
  • Pytorch实现GoogLeNet的方法

    Pytorch实现GoogLeNet的方法

    今天小编就为大家分享一篇Pytorch实现GoogLeNet的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08

最新评论