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的代码
public static String getResponseBodyAsStringByPost(String url, RequestEntity requestEntity,int retryCount, Map<String, String> headerMap){
StringBuffer buffer = new StringBuffer(url);
PostMethod method = new PostMethod(buffer.toString());
if(headerMap!=null){
for(Entry<String, String> entry:headerMap.entrySet()){
method.addRequestHeader(entry.getKey(), entry.getValue());
}
}
if(requestEntity!=null){
method.setRequestEntity(requestEntity);
}
do{
try {
try {
int code = getHttpClient().executeMethod(method);
if (code == HttpStatus.SC_OK) {
return method.getResponseBodyAsString();
} else {
LOGGER.warn("http failed, code {}, response {}, url {}", code, method.getResponseBodyAsString(), url);
}
} finally {
method.releaseConnection();
}
} catch (Throwable e) {
LOGGER.warn("http error, url:"+ url, e);
}
}while(--retryCount>0);
return null;
}
------------------------------------------------------------------------------
public static String getResponseBodyAsStringByPost(String url, RequestEntity requestEntity, Map<String, String> headerMap){
return getResponseBodyAsStringByPost(url,requestEntity,1, headerMap);
}
这个也需要加上。否则参数不匹配。
这个是和小米公司对接,工程师最后主动提供给我的,这才叫思考到位。
java对接申通下单接口示例代码的更多相关文章
- wechat开发笔记之1.接口示例代码
修改后的php示例代码! <?php /** * wechat php test */ //define your token define("TOKEN", "w ...
- EasyNVR网页Chrome无插件播放摄像机视频功能二次开发之云台控制接口示例代码
随着多媒体技术和网络通信技术的迅速发展,视频监控技术在电力系统.电信行业.工业监控.工地.城市交通.水利系统.社区安防等领域得到越来越广泛的应用.摄像头直播视频监控通过网络直接连接,可达到的世界任何角 ...
- Java 利用 UUID 生成唯一性 ID 示例代码
用户ID首先生成,订单ID的生成可依赖用户ID. 下面代码前六位是日期,后八位是随机数,用于生成用户ID. public String getNewUserId() { String ipAddres ...
- Java 超类引用子类对象的示例代码
动态方法分配 dynamic method dispatch 一个被重写的方法的调用会在运行时解析,而不是编译时解析 Java 会根据在调用发生时引用的对象的类型来判断所要执行的方法 public c ...
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...
- 左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用
文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy201 ...
- JAVA的免费天气api接口调用示例
step1:选择本文所示例的接口"免费天气api" url:https://www.juhe.cn/docs/api/id/39/aid/87 step2:每个接口都需要传入一个参 ...
- java接口对接——别人调用我们接口获取数据
java接口对接——别人调用我们接口获取数据,我们需要在我们系统中开发几个接口,给对方接口规范文档,包括访问我们的接口地址,以及入参名称和格式,还有我们的返回的状态的情况, 接口代码: package ...
- Java内部类超详细总结(含代码示例)
什么是内部类 什么是内部类? 顾名思义,就是将一个类的定义放在另一个类的内部. 概念很清楚,感觉很简单,其实关键在于这个内部类放置的位置,可以是一个类的作用域范围.一个方法的或是一个代码块的作用域范围 ...
随机推荐
- Android 实现卡片翻转的动画(翻牌动画)
Android 实现卡片翻转的动画(翻牌动画) 需求描述 点击卡片,卡片翻转过来显示内容. 点击左边的卡片,将卡片翻转显示右边的图片结果. 功能实现 因为要翻转所以使用动画来完成翻转的动画.动画分为两 ...
- #Java学习之路——基础阶段(第六篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- 一步一步用Canvas写一个贪吃蛇
之前在慕课网看了几集Canvas的视频,一直想着写点东西练练手.感觉贪吃蛇算是比较简单的了,当年大学的时候还写过C语言字符版的,没想到还是遇到了很多问题. 最终效果如下(图太大的话 时间太长 录制gi ...
- .NET Core 使用 HttpClient SSL 请求出错的解决办法
问题 使用 HTTP Client 请求 HTTPS 的 API 时出现 The certificate cannot be verified up to a trusted certificatio ...
- Python内置函数(20)——exec
英文文档: exec(object[, globals[, locals]]) This function supports dynamic execution of Python code. obj ...
- 5.jQuery
简介 jQuery是一个快速.简洁的JavaScript框架,jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代 ...
- springBoot(12)---整合Swagger2
Spingboot整合Swagger2 随着互联网技术的发展,一般开发都是前后端分离,那么前端和后端的唯一联系,变成了API接口:API文档变成了前后端开发人员联系的纽带,变得越来越重要,没有API ...
- 『扩展欧几里得算法 Extended Euclid』
Euclid算法(gcd) 在学习扩展欧几里得算法之前,当然要复习一下欧几里得算法啦. 众所周知,欧几里得算法又称gcd算法,辗转相除法,可以在\(O(log_2b)\)时间内求解\((a,b)\)( ...
- IdentityServer4实战 - 必须使用HTTPS问题解析
一. 前言 关于必须使用HTTPS这个问题,很多朋友都在群里问到了,不过由于这个问题很简单,一直也没通过文章的方式记录下来,今日有时间,便说说它的前因后果吧,给需要的人解惑~. 二. 问题发生 本文所 ...
- jxa快速入门,Javascript已加入AppleScript全家桶
因为工作环境基本是以跨平台为主,所以纯mac本地化的AppleScript一直关注是不够的,前几天找资料发现AppleScript也在迅速的进步着,目前已经对Javascript做了比较好的支持--- ...