• java接口对接——调用别人接口推送数据


    实际开发中经常会遇到要和其他平台或系统对接的情况,实际操作就是互相调用别人的接口获取或者推送数据,

    当我们调用别人接口推送数据时,需要对方给一个接口地址以及接口的规范文档,规范中要包括接口的明确入参及其格式,和接口返回状态的几种情况,

    调用的后台acion层业务管理层代码:

    /**
         * 调用XXX市接口推送银行开户信息  
         * ywguid 即为 projectguid
         * @exception/throws [违例类型] [违例说明]
         * @see [类、类#方法、类#成员]
         */
        public void pushToSZOpenAcountApplyinfo(String projectguid) {
            try {
                YzyhEntityServiceImpl yzyhEntityServiceImpl = new YzyhEntityServiceImpl();
                System.out.println("===================引入银行印章流程得实体service" + yzyhEntityServiceImpl);
                YzyhEntity yzyhEntity = yzyhEntityServiceImpl.getYzyhEntityByProjectguid(projectguid);
                //时间格式化
                SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
                if (yzyhEntity != null) {
                    RestfulService restfulservice = new RestfulService();
                    JSONObject jobparasjson = new JSONObject();
                    JSONObject jobjparas = new JSONObject();
                    jobparasjson.put("token", "xxx_WebSerivce_**##0601");
                    //业务标识
                    jobjparas.put("ywguid", projectguid);
                    //存款人名称
                    jobjparas.put("acctna", StringUtil.isBlank(yzyhEntity.getAcctna()) ? "" : yzyhEntity.getAcctna());
                    //证明文件种类
                    if (StringUtil.isNotBlank(yzyhEntity.getIdtftp())) {
                        jobjparas.put("idtftp", yzyhEntity.getIdtftp());
                    } else {
                        jobjparas.put("idtftp", "M");
                    }
                    String areacode = "";
                    //证明文件编号
                    jobjparas.put("idtfno", StringUtil.isBlank(yzyhEntity.getIdtfno()) ? "" : yzyhEntity.getIdtfno());
                    //证明文件有效期 
                    jobjparas.put("matudt", StringUtil.isBlank(yzyhEntity.getMatudt()) ? "2099-12-30 00:00:00"
                            : sdf2.format(yzyhEntity.getMatudt()));
                    //地址
                    //                String address = yzyhEntity.get("Ctrl66") + "省(市/区)";
                    //                address += yzyhEntity.get("Ctrl67") + "市(区/盟/州)";
                    //                address += yzyhEntity.get("Ctrl68") + "县";
                    //                address += yzyhEntity.get("Ctrl69") + "乡(镇/街道)";
                    //                address += yzyhEntity.get("Ctrl70") + "村(路)";
                    //                address += yzyhEntity.get("Ctrl71") + "号";
                    //id有效期
                    jobjparas.put("lwiddt", StringUtil.isBlank(yzyhEntity.getLwiddt()) ? "2099-12-30 00:00:00"
                            : sdf2.format(yzyhEntity.getLwiddt()));
                    //证件编号
                    jobjparas.put("lwidno", yzyhEntity.getLwidno());
                    //基本账户开户许可核准号
                    jobjparas.put("dtittp", "ACO1");
                    //代理人证件有效期
                    jobjparas.put("pxmudt", StringUtil.isBlank(yzyhEntity.getPxmudt()) ? "2099-12-30 00:00:00"
                            : sdf2.format(yzyhEntity.getPxmudt()));
                    //业务代码
                    jobjparas.put("qxcode", yzyhEntity.getQxcode());
                    jobparasjson.put("params", jobjparas);
                    System.out.println("开户申请参数:" + jobparasjson);
                    //调用市政上报接口
                    String result = restfulservice.getTaskinfo(jobparasjson.toString());
                    System.out.println("===============开户申请信息返回值:" + result);
                    if (StringUtil.isBlank(result)) {
                        System.out.println("=============开户申请信息推送失败=====================");
                    }
                    JSONObject jsonresult = (JSONObject) JSONObject.parse(result);
                    String custom = jsonresult.getString("custom");
                    JSONObject jsoncustom = (JSONObject) JSONObject.parse(custom);
                    String code = jsoncustom.getString("code");
                    if ("1".equals(code)) {
                        System.out.println("==============开户申请返回结果:" + jsoncustom.getString("text"));
                    } else {
                        System.out.println("==============开户申请返回结果:" + jsoncustom.getString("text"));
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
                System.out.print(e.toString());
            }
        }

    所调用的所调用的restful接口,包含http模拟请求代码的service层业务逻辑实施层代码:

    package com.xxx.xxxxx.yzyhentity.action;
    
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.methods.RequestEntity;
    import org.apache.commons.httpclient.methods.StringRequestEntity;
    
    import com.xxx.basic.bizlogic.sysconf.systemparameters.service.FrameConfigService9; 
    /**
     * 接口请求
     *  [一句话功能简述]
     *  [功能详细描述]
     * @see [相关类/方法]
     * @since [产品/模块版本]
     */
    public class RestfulService
    {
    
        private static String SZRESTFULURL;
    
        private static String pushSZzwzxOpenAcountApplyinfo = "szbank/pushSZzwzxOpenAcountApplyinfo";//开户申请推送市政务服务中心商业银行 
    
        static {
            SZRESTFULURL = new FrameConfigService9().getFrameConfigValue("苏州市restful接口地址");
        }
    
        /**
         *  开户申请推送市政务服务中心商业银行
         *  [一句话功能简述]
         *  [功能详细描述]
         *  @param param ,为调用别人接口的入参
         *  @return    
         * @exception/throws [违例类型] [违例说明]
         * @see [类、类#方法、类#成员]
         */
        public String getTaskinfo(String param) {
            String url = SZRESTFULURL + pushSZzwzxOpenAcountApplyinfo;
            System.out.println("=============开户申请信息推送地址:"+url);
            return sendPost(url, param);
        }
     
        /**
         * http模拟请求
         */
        public String sendPost(String url, String param) {
            try {
                String result = null;
                String loginresturl = url;
                HttpClient httpClient = new HttpClient();
                PostMethod post = new PostMethod(loginresturl);
                HttpMethod method = post;
                System.out.println("=============开户申请信息推送地址:"+url);
                if (param != null) {
                    RequestEntity se = new StringRequestEntity(param, "application/json", "UTF-8");
                    post.setRequestEntity(se);
                }
                try {
                    httpClient.executeMethod(method);
                    String restresponse = method.getResponseBodyAsString();
                    System.out.println("===================restresponse:" + restresponse);
                    result=restresponse;
                } catch (Exception e) {
                    e.printStackTrace();
                    
                } finally {
                    post.releaseConnection();
                    
                }
                return result;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    
    }
  • 相关阅读:
    期末考试(优先队列)
    看病要排队《优先队列》
    Windows Message Queue(优先队列)
    Stones(优先队列)
    懒省事的小明(优先队列)
    产生冠军(set,map,拓扑结构三种方法)
    Web轻量级扫描工具Skipfish
    Web侦察工具HTTrack (爬取整站)
    文件上传漏洞绕过技巧
    Python爬虫之selenium的使用(八)
  • 原文地址:https://www.cnblogs.com/wmqiang/p/10500663.html
Copyright © 2020-2023  润新知