java如何实现一个接口调取另一个接口
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章给大家分享的是有关java如何实现一个接口调取另一个接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。java一个接口调取另一个接口工具类package com.u
千家信息网最后更新 2025年11月07日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(); //系统错误,返回结果 Map exceptionMap = 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安全错误
数据库的锁怎样保障安全
浪潮ioss事业部软件开发
ibm服务器切换
百度谷歌的数据库是
网络安全建设紧迫性
网络安全宣传 烟草
如何管理阿里云服务器
西路街道网络安全培训会
今日头条网络安全概念股
软件开发需要先确认什么
中国空间站网络安全
网络安全的相关部门
云南电力公司软件开发
崇明区环保网络技术
上海蜜糖互联网科技有限公司
字跳网络技术和字节跳动
英魂之刃其他服务器可以进去吗
大学数据库如何设计
linux服务器证书管理
repo服务器
网络安全v5有什么用
五大权威数据库
社区科普活动记录网络安全
江西互动投影多媒体软件开发
金蝶专业版数据库修改成混合验证
上海销必达网络技术有限公司
维护网络安全的议论文
学校网络安全教育周主题
太仓软件开发公司
豆豆柴服务器在哪里
深圳软件开发工作室多吗