java如何实现一个接口调取另一个接口
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章给大家分享的是有关java如何实现一个接口调取另一个接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。java一个接口调取另一个接口工具类package com.u
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
江门通讯软件开发费用是多少
公司需要网络技术员吗
超微服务器进raid
常用的非开源关系型数据库有
网络安全教育 竞赛题
数据库多租户免费软件
分期软件开发
上海映翰通网络技术有限公司
网络安全需要waf吗
网络安全儿童舞蹈
十八大网络安全总结
榆林有什么软件开发技术公司
网络安全知识竞赛怎么参加
广州华多网络技术有限公司
服务器不同系统怎么配置
软件开发与设计能考什么证书
江纵横畅捷网络技术
java 文件存入数据库
软件开发宣传视频
宁海安卓软件开发商
银行软件开发程序员公司前景
大学生网络安全提案模板
分期软件开发
sql数据库技术支持
dz论坛用什么数据库
电路板软件开发流程
深圳电视墙服务器厂商
全境封锁2服务器和反外挂
地铁逃生的服务器怎么切换
网络技术服务发票