HttpKit 基于Jfianl 调用第三方接口案例

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/maple980326/article/details/51830760


public class LanxunService {

    private Logger logger = Logger.getLogger(getClass());

    @Inject
    TblcodemstDao codemstDao;

    public boolean uploadFile(String item_id, String filename) throws Exception {
        // 源地址路径
        Tblcodemst code = codemstDao.selectByTypeNoDel("SOURCE_PLAYBACK_VIDEO_PATH");
        String source_path;
        if (code.content1.endsWith("/")) {
            source_path = code.content1 + filename;
        } else {
            source_path = code.content1 + "/" + filename;
        }
        // 发布播放地址路径
        code = codemstDao.selectByTypeNoDel("PUBLISH_PLAYBACK_VIDEO_PATH");
        String publish_path;
        if (code.content1.endsWith("/")) {
            publish_path = code.content1 + filename;
        } else {
            publish_path = code.content1 + "/" + filename;
        }

        // 蓝汛用户名
        code = codemstDao.selectByTypeAndSortNoDel("LANXUN_INFO", 0);
        String cust_id = code.content2;

        // 蓝汛密码
        code = codemstDao.selectByTypeAndSortNoDel("LANXUN_INFO", 1);
        String passwd = code.content2;

        // 对称加密Key
        code = codemstDao.selectByTypeAndSortNoDel("LANXUN_INFO", 2);
        String deckey = code.content2;

        try {
            cust_id = DesUtil.Decrypt(cust_id, deckey);
            passwd = DesUtil.Decrypt(passwd, deckey);
        } catch (Exception ex) {
            logger.error("蓝讯信息对称解密时发生系统异常", ex);
            throw ex;
        }

        String md5 = CryptUtil.getMD5(item_id + cust_id + "chinacache" + passwd);
        String data = "op=publish&context=<?xml version=\"1.0\" encoding=\"UTF-8\"?><ccsc><cust_id>" + cust_id
                + "</cust_id><passwd>" + md5 + "</passwd><item_id value=\"" + item_id + "\"><source_path>" + source_path
                + "</source_path><publish_path>" + publish_path + "</publish_path></item_id></ccsc>";
        String result = HttpKit.post("http://vbu.fds.ccgslb.net:8080/fds/soap/receiveTask.php", data);
        if (StringUtils.isEmpty(result)) {
            return false;
        }

        result = StringUtils.substringBetween(result, "<result>", "</result>");
        if (!"SUCCESS".equals(result)) {
            return false;
        }
        return true;
    }
}


=============================
回调函数:
public void getXmlResult() {
        String result = "FAILURE";
        Map<String, String[]> requestParams = getRequest().getParameterMap();
        logger.debug("蓝讯异步回调:");
        logger.debug(requestParams);
        String xml = requestParams.get("context")[0];
        String status = StringUtils.substringBetween(xml, "<op_status>", "</op_status>");
        Short delFlg = 3;
        switch (status) {
        case "download failed":
            delFlg = 3;
            break;
        case "download finish":
            delFlg = 4;
            break;
        case "sync finish":
            delFlg = 0;
            break;
        default:
            break;
        }

        String item_id = StringUtils.substringBetween(xml, "<item_id value=\"", "\">");

        Tblplayback playback = playbackDao.lockById(item_id);
        if (playback != null) {
            playback.delFlg = delFlg;
            playback.updDat = utilDao.getCurTimestamp();
            playback.updUsrId = "LanXun";
            int res = playbackDao.update(playback);
            if (res > 0) {
                result = "SUCCESS";
            }
        }

        renderText("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ccsc><result>" + result + "</result><detail></detail></ccsc>");
    }
++++++++++++++++++++++++++++++ 

包含heard :

public static JSONObject messageHistory(String date) {
        StringBuilder data = new StringBuilder();
        data.append("date=").append(date);

        System.out.println("messageHistory data:" + data);
        String json = HttpKit.post(URL_MESSAGE_HISTORY, data.toString(), getHeaders());
        System.out.println("messageHistory result:" + json);
        JSONObject result = JSONObject.parseObject(json);
        if (!"200".equals(result.getString("code"))) {
            throw new ServiceException((int) result.get("code"), "『融云』查询聊天室消息失败");
        }
        return result;
    }

    private static Map<String, String> getHeaders() {
        String nonce = String.valueOf((int) (Math.random() * 1000000));
        String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
        StringBuilder toSign = new StringBuilder(APP_SECRET).append(nonce).append(timestamp);
        String sign = CryptUtil.SHA1(toSign.toString());

        Map<String, String> headers = new HashMap<String, String>();
        headers.put("RC-App-Key", APP_KEY);
        headers.put("RC-Nonce", nonce);
        headers.put("RC-Timestamp", timestamp);
        headers.put("RC-Signature", sign);
        return headers;
    }

展开阅读全文

没有更多推荐了,返回首页