EAITool.java 2.83 KB
package com.huaheng.api.U8.tools;

import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.framework.aspectj.ApiLogAspect;
import com.huaheng.pc.monitor.apilog.domain.ApiLog;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class EAITool {
    public static final String DEFAULT_URL = "http://220.168.57.190:83/u8eai/import.asp";

    // 以下字段的含义,详见《U8开发之EAI接口.docx》中EAI接口规范->数据交换格式->请求消息格式
    public static final String ROOTTAG = "storeout";      // sql
    public static final String SENDER = "002";          // 发送者
    public static final String RECEIVER = "u8";         // 接收者
    public static final String PROC_ADD = "add";        // 处理——添加
    public static final String PROC_DEL = "delete";     // 处理——删除
    public static final String PROC_EDIT = "edit";      // 处理——编辑
    public static final String PROC_LIST = "query";     // 处理——查询所有
    public static final String CODEEXCHANGED = "N";     // 导入的代码未进行转码
    public static final String EXPORTNEEDEXCH = "N";    // 导出的代码不需要转码
    public static final String VERSION = "1.0";         // 版本

    public static String sendXML(String urlString, String xmlString) throws Exception {
        // 发送xml
        URL url = new URL(urlString);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        StringBuilder sb = new StringBuilder();
        String responseXml = null;
        ApiLog log = null;
        try {
            con.setConnectTimeout(3000000);
            con.setReadTimeout(3000000);
            con.setDoInput(true);
            con.setDoOutput(true);
            con.setAllowUserInteraction(false);
            con.setUseCaches(false);
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
            // 初始化日志记录
            log = ApiLogAspect.initApiLog(con, xmlString, QuantityConstant.WAREHOUSECODE);
            // 发送Request消息
            OutputStream out = con.getOutputStream();
            DataOutputStream dos = new DataOutputStream(out);
            dos.write(xmlString.getBytes("utf-8"));
            // 获取Response消息
            InputStream in = con.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(in));

            String s = null;
            while ((s = br.readLine()) != null) {
                sb.append(s);
            }
        }catch (Exception e){
            ApiLogAspect.setApiLogException(log, e);
            e.printStackTrace();
        }finally {
            responseXml = sb.toString();
            ApiLogAspect.finishApiLog(log, con, responseXml);
        }
        return responseXml;
    }
}