当前位置: 首页 > news >正文

java对接申通下单接口示例代码

上面是控制台示例代码

public class Sample{

	private final static String URL = "http://order.sto-express.cn:8001/api/Order/ProcessRequestTest";
	private final static String APPKEY = "appkey";
	private final static String APPSECRET = "secret";
	/**
	 * @param args
	 * @throws Exception 
	 */
    public static void main(String[] args) throws Exception {
        Date date = new Date();
        String dateStr = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss");

        Map<String, String> paramMap = new HashMap<String, String>();
        paramMap.put("RequestType", "json");
        paramMap.put("Func", "sto.order.add");
        
        JSONObject contentObj = new JSONObject();
        contentObj.put("SenderName", "张三");
        contentObj.put("SenderPhone", "15111111111");
        contentObj.put("SenderMobile", "15111111111");
        contentObj.put("SenderProvince", "上海");
        contentObj.put("SenderCity", "上海市");
        contentObj.put("SenderDistrict", "青浦区");
        contentObj.put("SenderAddress", "青浦区");
        
        contentObj.put("ReceiverName", "李四");
        contentObj.put("ReceiverMobile", "15111111112");
        contentObj.put("ReceiverProvince", "上海");
        contentObj.put("ReceiverCity", "上海市");
        contentObj.put("ReceiverDistrict", "青浦区");
        contentObj.put("ReceiverAddress", "青浦区");

        contentObj.put("GoodsType", "物品");
        
        
        String contentStr =Base64.encodeBase64String(contentObj.toString().getBytes()).replaceAll("\r\n", "");
        System.out.println("contentStr:" + contentStr);
        System.out.println("Decode:" + new String(Base64.decodeBase64(contentStr)));
        paramMap.put("Content", contentStr);
        paramMap.put("AppKey", APPKEY);
        
        paramMap.put("TimeSpan", dateStr);
        paramMap.put("Signature", DigestUtils.md5Hex(APPKEY+ dateStr + contentStr + APPSECRET));
        paramMap.put("Version", "1.0");

        System.out.println(JSONObject.fromObject(paramMap));
        
        StringRequestEntity entity = null;
        try {
            entity = new StringRequestEntity(JSONObject.fromObject(paramMap).toString(), "application/json", "UTF-8");
        } catch (Exception e) {
            e.printStackTrace();
        }
        Map<String, String> headerMap = new HashMap<String, String>();
        headerMap.put("Connection", "Keep-Alive");
        headerMap.put("Cache-Control", "no-cache");
        headerMap.put("Accept", "text/html,application/xhtml+xml,application/xml,application/json;");
        String responseStr = HttpClientUtils.getResponseBodyAsStringByPost(URL, entity, headerMap);
        System.out.println(responseStr);
    }
}

  下面的代码是post的代码

 1     public static String getResponseBodyAsStringByPost(String url, RequestEntity requestEntity,int retryCount, Map<String, String> headerMap){
 2         StringBuffer buffer = new StringBuffer(url);
 3         PostMethod method = new PostMethod(buffer.toString());
 4         if(headerMap!=null){
 5             for(Entry<String, String> entry:headerMap.entrySet()){
 6                 method.addRequestHeader(entry.getKey(), entry.getValue());
 7             }
 8         }
 9         if(requestEntity!=null){
10             method.setRequestEntity(requestEntity);
11         }
12         do{
13             try {
14                 try {
15                     int code = getHttpClient().executeMethod(method);
16                     if (code == HttpStatus.SC_OK) {
17                         return method.getResponseBodyAsString();
18                     } else {
19                         LOGGER.warn("http failed, code {}, response {}, url {}", code, method.getResponseBodyAsString(), url);
20                     }
21                 } finally {
22                     method.releaseConnection();
23                 }
24             } catch (Throwable e) {
25                 LOGGER.warn("http error, url:"+ url, e);
26             }
27         }while(--retryCount>0);
28         return null;
29     }
View Code

 ------------------------------------------------------------------------------

public static String getResponseBodyAsStringByPost(String url, RequestEntity requestEntity, Map<String, String> headerMap){
        return getResponseBodyAsStringByPost(url,requestEntity,1, headerMap);
    }

  这个也需要加上。否则参数不匹配。

  这个是和小米公司对接,工程师最后主动提供给我的,这才叫思考到位。

 

转载于:https://www.cnblogs.com/wohexiaocai/p/6734688.html

相关文章:

  • C#中Out和Ref參数修饰符
  • C#的6种常用集合类大比拼
  • duwamish7,petshop 1.5 3.0 这些要好好看看
  • 配置管理工具Puppet 安装和测试(一)
  • D3D中粒子效果实现示例
  • Oracle GoldenGate (ogg) 11.2.1.0.20 是最后一个支持oracle db 10g的 ogg版本号
  • adapter facade 和 proxy
  • 好用的在线web页面测试,移动页面测试工具webpagetest使用图文教程
  • 安装 MariaDB
  • dotText源码阅读(4)--DTO和数据访问
  • Java之JDBC学习
  • 上海:法制宣传上公交 移动电视受好评
  • 基于FPGA的XPT2046触摸控制器设计
  • Tomcat漏洞利用
  • jQuery获取select中全部option值
  • 【347天】每日项目总结系列085(2018.01.18)
  • CSS居中完全指南——构建CSS居中决策树
  • CSS实用技巧干货
  • Java Agent 学习笔记
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • React-flux杂记
  • springboot_database项目介绍
  • webpack+react项目初体验——记录我的webpack环境配置
  • windows-nginx-https-本地配置
  • 阿里云购买磁盘后挂载
  • 安装python包到指定虚拟环境
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 简单易用的leetcode开发测试工具(npm)
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 使用SAX解析XML
  • 数组大概知多少
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 我这样减少了26.5M Java内存!
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​ubuntu下安装kvm虚拟机
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​低代码平台的核心价值与优势
  • !!java web学习笔记(一到五)
  • !$boo在php中什么意思,php前戏
  • #include<初见C语言之指针(5)>
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #QT(串口助手-界面)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (C语言)字符分类函数
  • (done) 两个矩阵 “相似” 是什么意思?
  • (Forward) Music Player: From UI Proposal to Code
  • (ZT)一个美国文科博士的YardLife
  • (分布式缓存)Redis哨兵
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (九十四)函数和二维数组
  • (强烈推荐)移动端音视频从零到上手(下)