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

Python requests提交KMC出生记录查询接口form-data返回系统管理员错误如何解决?

问题原因

  • 手动指定了固定的Content-Length请求头:requests会根据实际提交的payload自动计算该字段值,你写死的56和实际请求长度不匹配会直接被后台拒绝。
  • 遗漏了页面隐藏的校验参数:这类政务站点几乎都会在搜索页面嵌入CSRF令牌、会话校验类的隐藏表单字段,你需要先从第一次GET请求返回的HTML里提取这些字段,和查询参数一起提交,否则后台会判定为非法请求。
  • 没必要手动提取Session的Cookie:requests.Session()实例会自动维护请求过程中的Cookie,你不需要手动提取再传递,反而可能出现传递错误。
  • 可能存在参数名大小写错误:Java后端对参数名大小写敏感,你需要确认表单的出生日期参数是dateofBirth还是dateOfBirth这类拼写差异,以及是否还有其他必填的查询参数你没有包含。
  • 提交格式不匹配:你提到要发送form-data格式请求,但你当前代码用的是application/x-www-form-urlencoded格式,如果站点要求multipart/form-data格式,你需要调整参数构造方式。

修复方案代码示例

import requests
from bs4 import BeautifulSoup

# 初始化会话
a_session = requests.Session()
# 统一设置公共请求头,避免每次请求单独传递
a_session.headers.update({
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36",
    "Referer": "https://www.kmcgov.in/KMCPortal/jsp/KMCBirthRecordSearch.jsp",
    "X-Requested-With": "XMLHttpRequest"
})

# 第一次请求获取搜索页面,提取隐藏校验参数
search_page = a_session.get('https://www.kmcgov.in/KMCPortal/jsp/KMCBirthRecordSearch.jsp')
soup = BeautifulSoup(search_page.text, 'html.parser')

# 提取所有隐藏表单字段加入提交参数
post_data = {}
hidden_inputs = soup.find_all('input', {'type': 'hidden'})
for input_tag in hidden_inputs:
    if input_tag.get('name') and input_tag.get('value'):
        post_data[input_tag.get('name')] = input_tag.get('value')

# 添加你的查询参数
post_data.update({
    'FatherName': 'Cha',
    'dateofBirth': '19/08/2004',
    'MotherName': 'Cha',
})

url = 'https://www.kmcgov.in/KMCPortal/KMCBirthRegistrationAction.do?var=getVal'
# 直接用session发送post请求,不需要手动传cookie,不要手动写Content-Length等自动生成的头
r = a_session.post(url, data=post_data)
print(r.text)

# 如果确实需要form-data格式,把post的参数换成files构造即可:
# r = a_session.post(url, files=post_data)

额外排查方向

如果修改后还是报错,你可以用浏览器F12的网络面板,手动提交一次查询,对比浏览器发送的POST请求里的所有参数,确认你提交的参数名、参数值和浏览器完全一致即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:15:03