java如何实现一个接口调取另一个接口
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章给大家分享的是有关java如何实现一个接口调取另一个接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。java一个接口调取另一个接口工具类package com.u
千家信息网最后更新 2025年02月22日java如何实现一个接口调取另一个接口
这篇文章给大家分享的是有关java如何实现一个接口调取另一个接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
java一个接口调取另一个接口
工具类
package com.utils; import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL; import org.apache.log4j.Logger; import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.userbackend.controller.UserInfoController;import com.userbackend.model.User; //调取接口方法public class ToInterface {/*** 调测日志记录器。*/private static final Logger DEBUGGER = Logger.getLogger(UserInfoController.class); /*** 调用对方接口方法* * @param path* 对方或第三方提供的路径* @param data* 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析* @param requestMethod* 请求方式* */public static StringBuffer interfaceUtil(String path, Object data, String requestMethod) {StringBuffer sb = new StringBuffer();DEBUGGER.info("请求数据:" + data);try {URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 打开和url之间的连接PrintWriter out = null;conn.setRequestMethod(requestMethod); // 请求方式// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");//设置传到另一个接口的格式为jsonconn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");// 设置是否向httpUrlConnection输出,设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个// 最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,// post与get的 不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。conn.setDoOutput(true);conn.setDoInput(true);// allowUserInteraction 如果为 true,则在允许用户交互(例如弹出一个验证对话框)的上下文中对此 URL 进行检查。conn.setAllowUserInteraction(false);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数即数据out.print(data);// 缓冲数据out.flush();out.close();// 获取URLConnection对象对应的输入流InputStream is = conn.getInputStream();// 构造一个字符流缓存BufferedReader br = new BufferedReader(new InputStreamReader(is));String str = "";while ((str = br.readLine()) != null) {sb.append(str);}// 关闭流is.close();// 断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。// 固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。conn.disconnect();// System.out.println("完整结束");DEBUGGER.info("调用app后台接口完整结束");} catch (Exception e) {e.printStackTrace();}return sb;} }
springboot中使用(接口一)
@RequestMapping(value = "/get_all_user", method = RequestMethod.POST) @ResponseBody public String get_all_user(HttpServletRequest request, HttpServletResponse response, Model model, AdminTbl admintabl,User user) { JSONObject result = new JSONObject();String[] args = { "admin_id"}; // 判断传来的数据是否为空 JSONObject nullcheck = ParamterNullCheck.getInstance().checkNull(admintabl, args);JSONObject param = null;param = (JSONObject) JSON.toJSON(user);DEBUGGER.info(param.toJSONString());if (nullcheck == null ) {// 查询该 用户是否有该权限admintabl.setUrl("/userInfo/get_all_user");RolePermissionTbl rpt = permissionService.get_permission(admintabl);if (rpt != null) {//调取接口 StringBuffer userlist= ToInterface.interfaceUtil("http://192.168.10.176:20000/user/getUserList",param.toJSONString(),"POST"); result.put("userlist", userlist);} else {result.put("msg", Constants.NO_AUTH);}}else {result = nullcheck;} return result.toJSONString(); }
接口二
@RequestMapping(value = "/getUserList", method = RequestMethod.POST)public ResponseEntitygetUserList(@RequestBody UserPageDto data) { JSONObject result = new JSONObject();// 分页语句Page
接口的调用与调用别人的接口
此接口调用与被调用,都是在springMVC框架下使用参数以json格式传输。
别人调用我们的接口,与controller方法开发类似
@RequestMapping("/otherUseMe.do")public void otherUseMe (HttpServletRequest request,HttpServletResponse response) throw IOException{ //基本设置 response.setContent("appliction/json;charset=utf-8"); //用来给对方传递参数 PrintWriter out = response.getWriter(); //系统错误,返回结果 MapexceptionMap = new HashMap (); exceptionMap.put("code","999"); //将错误代码转为json字符串 String exceptionStr = JSONObject.fromObject(excetionMap).toString(); //接收传来的参数 String name = request.getParameter("name"); String gender = request.getParameter("gender"); try{ boolean flag = "业务处理"; if(失败flag){ Map falseMap = new HashMap (); falseMap.put("code","998"); falseMap.put("result","fail"); falseMap.put("description","cry"); String falseStr = JSONObject(falseMap).toString(); out.write(falseStr); }else{ Map succMap = new HashMap (); falseMap.put("code","997"); falseMap.put("result","succ"); falseMap.put("description","smile"); String succStr = JSONObject(falseMap).toString(); out.write(succStr); } }catch(Exception e){ e.printStackTrace(); out.write(exceptionStr); return; }finally{ if(out!=null){ out.close(); } }
我们调用别人的接口
public boolean IUseOthers(String name,String gender){ HttpClient client = new HttpClient(); PostMethod postMethod = new PostMethod("http://111..111.11.11:8080/---");//写网址 postMethod.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=utf-8"); try{ postMethod.addParameter("name",name); postMethod.addParameter("gender",gender); int status = client.executeMethod(postMethod); //获取返回信息 JSONObject jsonObject = JSONObject.fromObject(postMethod.getResponBodyAsString().toString); String code = jsonObject.getString("code"); boolean flag = false; if("999".equals(code)){ flag =true; } }catch(HttpException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }finally{ if(postMehod!=null){ postMehod.releaseConnection(); } } return flag; }}
感谢各位的阅读!关于"java如何实现一个接口调取另一个接口"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
接口
参数
对方
数据
方法
信息
内容
字符
对象
方式
是在
更多
格式
用户
第三方
篇文章
线程
链接
错误
输出
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
搭建监控sip服务器
广电网络技术教学
陕西单招软件开发
太原 软件开发 订制
固网打印服务器1000u
中专网络安全主题班会
有自学软件开发成功的吗
私有git仓库服务器
服务器坏了硬盘怎么看
智能互联网络技术属于什么学院
常见的软件开发方法比较
数据库系统的书籍
卫生院网络安全自查工作总结
软件开发早期无测试
数据库认证证书 对公司的好处
区块链数据导入数据库
达内软件开发培训课程设置
济南地区浪潮服务器店面电话多少
工行服务器有哪些
淮南网络技术及信息安全工程师
大学校园网络安全流程图
软件开发行业对人才的要求
常州网络软件开发供应商
sql 连接远程数据库
校园网络安全控制
mysql查看数据库表修改记录
mongoose登录数据库
服务器怎么卸载QQbot
数据库如何增加视图
公安网络安全工作是干嘛的