第三方接口 CallNetApi (自己写connection)

  public NetResultMap getTicketByProps(String msisdn, String ticketId,
        Map<String, Object> result, int apiFailStatus) throws Exception {
        NetResultMap mapUsrInfo = new NetResultMap();
        StringBuilder sbXmlParam = new StringBuilder();
        String url = getProperty("apiUrlIServer")+ getProperty("getTicketByPropsPostUrl");
        String sendXml = "";
        sbXmlParam.append("<Request>");
        sbXmlParam.append("<msisdn>" + msisdn + "</msisdn>");
        sbXmlParam.append("<ticketId>" + ticketId + "</ticketId>");
        sbXmlParam.append("</Request>");
        sendXml = sbXmlParam.toString();

        CallNetApi callNetApi = new CallNetApi();
        NetResult rst = callNetApi.Post(url, sendXml);
        if (rst.status != 0) {
            result.put("status", apiFailStatus);
            result.put("resultCode", rst.status);
            return null;
        }

        mapUsrInfo.map = readGetTicketByPropsResult(rst.response);
        if (mapUsrInfo.containsKey("resultCode")) {
            if ((mapUsrInfo.get("resultCode").equals("200") == false)) {
                result.put("status", apiFailStatus);
                result.put("resultCode", mapUsrInfo.get("resultCode"));
                return null;
            }
        } else {
            logger.error("兑换书券接口返回格式不正");
            result.put("status", 9);
            return null;
        }

        return mapUsrInfo;
    }

public class CallNetApi {
    protected Logger logger = Logger.getLogger(getClass());
    
    public NetResult Post(String postbackUrl, String requestXml) throws Exception {
        NetResult rst =  new NetResult();
        rst.response="";
        rst.status=0;
        Boolean isFist =true;
        StringBuilder sb = new StringBuilder();

        try {
            logger.info(postbackUrl);
            URL url = new URL(postbackUrl);

            // 设定连接的相关参数
            HttpURLConnection connection = (HttpURLConnection) url
                    .openConnection();
            connection.setDoOutput(true);
            connection.setRequestMethod("POST");
            OutputStreamWriter out = new OutputStreamWriter(
                    connection.getOutputStream(), "UTF-8");

            logger.info(requestXml);
            out.write(requestXml);            
            out.flush();
            out.close();
            String strLine = "";

            String strResponse = "";
            InputStream in = connection.getInputStream();
            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(in, "UTF-8"));
            while ((strLine = reader.readLine()) != null) {
                strResponse += strLine + "\n";
            }
            rst.response = strResponse;
            logger.info(strResponse);
        } catch (MalformedURLException ex) {
            throw ex;
        } catch (Exception e) {
            if(e.getMessage().startsWith("Server returned HTTP response code: ")){
                String tmp = e.getMessage().substring("Server returned HTTP response code: ".length()).split(" ")[0];
                rst.status = Integer.valueOf(tmp);
                logger.error(e);
                logger.error(requestXml);
            }else{
                throw e;
            }
        }
        return rst;
    }    
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要调用第三方接口,你可以使用 Java 中的 HttpURLConnection 或 HttpClient 等库进行网络请求。以下是一个示例代码,演示如何使用 HttpURLConnection 发起 GET 请求调用第三方接口: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ThirdPartyAPI { public static void main(String[] args) { try { // 创建 URL 对象 URL url = new URL("http://api.example.com/endpoint"); // 打开连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 设置请求方法为 GET connection.setRequestMethod("GET"); // 发起请求 int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // 读取响应 BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); // 处理响应数据 System.out.println(response.toString()); } else { System.out.println("请求失败,错误代码:" + responseCode); } // 关闭连接 connection.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上代码会发起一个 GET 请求到 `http://api.example.com/endpoint`,并打印响应内容。你可以根据实际情况修改 URL、请求方法、处理响应等部分来适应你要调用的具体接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值