当前位置: 代码网 > it编程>编程语言>Java > Python调用Java接口失败(Java日志打印警告:JSON parse error:xxxx)的解决方案

Python调用Java接口失败(Java日志打印警告:JSON parse error:xxxx)的解决方案

2025年11月13日 Java 我要评论
1. 场景描述现有以下java接口实现:@requestmapping(value="addinfo", method=requestmethod.post, produces=mediatype.a

1. 场景描述

现有以下java接口实现:

@requestmapping(value="addinfo", method=requestmethod.post, produces=mediatype.application_json_value)
public tbinfoentity addinfo(@requestheader("usergroup")string usergroup,
    @requestheader("username")string username,
    @requestbody jsonobject requestbody
){
    // 将jsonobject转换为tbinfoentity对象
    tbinfoentity tie = jsonobject.parseobject(requestbody.tojsonstring(), tbinfoentity.class);
    // 调用mapper接口写入数据库
    tiemapper.insert(tie);
    return tie;
}

接口访问地址为:

http://127.0.0.1:8089/test/addinfo

对应的python调用代码如下:

import requests
import json

# 构建请求数据
data = {
    "userid":"001",
    "userage":"19",
    "useraddr":"shanghai"
}

# 设置请求头
headers = {
    "content-type":"application/json",
    "accept":"application/json",
    "username":"xiuheng",
    "usergroup":"csdn"
}

url = "http://127.0.0.1:8089/test/addinfo"
# 调用接口
response = requests.post(url=url, json=data, headers=headers, timeout=30)

执行后出现400错误,java服务日志显示json解析错误。

2. 问题分析

根据错误现象:

  • python端报400错误,提示请求参数问题
  • java服务日志显示json解析失败
  • 主要关注请求参数中的data部分可能存在格式问题

初步判断问题出在请求参数的传递方式上,尝试修改参数传递方式。

3. 解决方案

修改python调用代码为以下形式:

import requests
import json

data = {
    "userid":"001",
    "userage":"19",
    "useraddr":"shanghai"
}

headers = {
    "content-type":"application/json",
    "accept":"application/json",
    "username":"xiuheng",
    "usergroup":"csdn"
}

url = "http://127.0.0.1:8089/test/addinfo"
# 使用data参数并手动序列化json
response = requests.post(url=url, data=json.dumps(data), headers=headers, timeout=30)

修改后调用成功,数据正常写入数据库。

4. 经验总结

python调用java接口传递jsonobject类型数据时:

  • 建议使用data参数而非json参数
  • 必须使用json.dumps()对数据进行序列化处理
  • 这样才能确保参数格式符合java端json解析的要求

以上就是python调用java接口失败(java日志打印警告:json parse error:xxxx)的解决方案的详细内容,更多关于python调用java接口失败的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com