当前位置: 首页 > news >正文

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

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

  • Python调用Java接口失败(Java日志打印警告:JSON parse error:xxxx)
    • 1. 场景描述
    • 2. 问题分析
    • 3. 解决方案
    • 4. 经验总结


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。


在这里插入图片描述


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

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 jsondata = {"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解析的要求

在这里插入图片描述


📜文末寄语

  • 🟠关注我,解锁更多优质内容
  • 🟡技术前沿 | 实战干货 | 疑难解答,持续更新中
  • 🟢加入《全栈知识库》,与各领域开发者共创技术盛宴
  • 🔵​进入《专属社群》,技术路上结伴同行,共同成长
  • 🟣点击下方名片,获取更多精彩内容👇

http://www.dtcms.com/a/600644.html

相关文章:

  • 没有网站如何做SEO推广有用吗怎么不花钱自己开网店
  • ArkTS分布式设计模式浅析
  • 倍福PGV100-F200A-R4-V19使用手册
  • FD2000/4的UEFI编译和烧录文件打包过程记录
  • 微信小程序map自定义气泡customCallout
  • 如何在ubuntu调用exe文件
  • Polar MISC (中)
  • 《理解数据在内存中的存储 --- 解密数据在计算机底层的存储秘密》
  • 兰州网站建设公网站可以换虚拟主机吗
  • 营销型网站建设评价深圳福田住房和建设局网站官网
  • 遍历访问阿里云节点下的所有文件信息并写入excel文件
  • 平台消息推送(go)
  • uniapp集成爱山东获取用户信息
  • Python编程实战 - Python实用工具与库 - 操作Excel:openpyxl / pandas
  • 开展我国电子网站建设wordpress表白
  • Java 在 Excel 中添加或删除批注:Spire.XLS for Java 实践指南
  • uniapp 使用unocss的问题
  • [Linux——Lesson23.线程概念与控制:线程基础]
  • 四大主流浏览器Chrome、Edge、Safari、Firefox内核检测免费工具评测
  • 弱网通话没保障?多网聚合,逐包调度,新技术扫除网络痛点
  • 网站制作公司的网站贵阳网站改版
  • 电脑硬件价格呈现持续上涨趋势及软件优化的必要性
  • Spring集成kafka的最佳方式
  • 设计网站怎么做网业是什么行业
  • RK3588应用分享之国产化系统-开源鸿蒙OpenHarmony
  • RabbitMQ-基础-总结
  • 学习react第二天
  • 【JVS更新日志】低代码、APS排产、物联网、企业计划11.12更新说明!
  • 前端注释规范:如何写“后人能看懂”的注释(附示例)
  • C语言编译器下载地址 | 如何选择适合自己的C语言编译器