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;
        }
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM