【Pyton】访问Java提供的Rest接口示例
代码:
# coding=utf-8 import urllib.request url="http://localhost:8080/mediacool/probeUser" param_dict={'name':'何杨','pswd':'1'} param_str=urllib.parse.urlencode(param_dict) params_bytes=param_str.encode() req=urllib.request.Request(url,data=params_bytes) with urllib.request.urlopen(req) as rsps: data=rsps.read() json_data=data.decode(); print(json_data)
输出:
C:\hy\py>python postMediaCoolUser.py {"Interface ID":"8973","startTime":"2021-10-31 12:08:33.793817800","visitorIp":"0:0:0:0:0:0:0:1","code":"303","msg":"确 认用户名和密码无误","userInfo":{"id":1,"name":"何杨","email":"1@2.3"},"endTime":"2021-10-31 12:08:33.799822200"}
附:
Java接口:
package com.hy.myapp.rest; import java.time.LocalDate; import java.time.LocalTime; import java.util.LinkedHashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.hy.myapp.Entity.User; import com.hy.myapp.service.UserService; import com.hy.myapp.util.RestUtil; /** * 用于用户服务的Restful控制器 * @author hy * 2021年10月31日 */ @RestController public class UserRestCtrl { @Autowired private UserService userService; @RequestMapping(value="/probeUser", method=RequestMethod.POST) public Map<String,Object> probeUser(String name,String pswd,HttpServletRequest rqst){ Map<String,Object> retvalMap=new LinkedHashMap<String,Object>(); retvalMap.put("Interface ID", "8973"); String startTime=LocalDate.now()+" "+LocalTime.now(); retvalMap.put("startTime", startTime); String visitorIp=RestUtil.findVisitorIpFrom(rqst); retvalMap.put("visitorIp", visitorIp); if(name==null) { retvalMap.put("code", "301"); retvalMap.put("msg", "name不可缺失"); String endTime=LocalDate.now()+" "+LocalTime.now(); retvalMap.put("endTime", endTime); return retvalMap; } if(pswd==null) { retvalMap.put("code", "302"); retvalMap.put("msg", "password不可缺失"); String endTime=LocalDate.now()+" "+LocalTime.now(); retvalMap.put("endTime", endTime); return retvalMap; } // 到此name、pswd都有了 User user=userService.searchUserByNamePswd(name, pswd); if(user!=null) { retvalMap.put("code", "303"); retvalMap.put("msg", "确认用户名和密码无误"); retvalMap.put("userInfo", user); String endTime=LocalDate.now()+" "+LocalTime.now(); retvalMap.put("endTime", endTime); return retvalMap; }else { retvalMap.put("code", "304"); retvalMap.put("msg", "用户名或密码有误"); String endTime=LocalDate.now()+" "+LocalTime.now(); retvalMap.put("endTime", endTime); return retvalMap; } } }
END
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-10-31 [java]借助java.io.File类,完成文件批量改名
2014-10-31 【Canvas与艺术】绘制斜置黄色三角biohazard标志
2014-10-31 一图说明英语介词
2014-10-31 【高中数学/函数/零点】函数y=2^x+3x的零点所在的一个区间是?