java HTTP代码示例
//测试环境发送用例@Testpublic void testSendForTest() { String appkey = "00d40313b7f340ec8df6a3dff293d45c"; String token = "871c69137b654c07b18191859d8bd257b9e092ac1f704336999a2a184a7d9910"; Map<String, String> params = new LinkedHashMap<>(); params.put("appkey", appkey); params.put("p0", "PDS");//业务系统 params.put("p1", "PDS-test");//业务类型 params.put("p2", UUID.randomUUID().toString());//业务id params.put("p3", "STATION_EUAE,STATION_SZAE");//目的站 params.put("p4", "我是测试");//消息内容 params.put("p5", "test");//跟踪ID params.put("p9", "123");//消息内容加密密钥 String timestamp = System.currentTimeMillis()+""; params.put("timestamp", timestamp);//时间戳 StringBuilder s = new StringBuilder(); for (Iterator<Entry<String, String>> iterator = params.entrySet().iterator(); iterator.hasNext();) { Entry<String, String> entry = iterator.next(); if(StringUtils.isNotBlank(entry.getValue())) { s.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); } } String paramsStr = s.toString(); String signStr = CodecUtil.md5AndBase64(paramsStr.substring(0, paramsStr.length() - 1) + token); params.put("signStr", signStr); String response = HttpUtils.postJson(url, params); System.out.println(response); ResponseMessage responseMessage = JSON.parseObject(response, ResponseMessage.class); System.out.println(responseMessage);} |
//签名代码public static String md5AndBase64(String stringValue) { try { byte[] btInput = stringValue.getBytes(Charset.forName("UTF-8")); // 获得MD5摘要算法的 MessageDigest 对象 MessageDigest mdInst = MessageDigest.getInstance("MD5"); // 使用指定的字节更新摘要 mdInst.update(btInput); // 获得密文 byte[] md = mdInst.digest(); return Base64.encodeBase64String(md); } catch (Exception e) { logger.error(e.getMessage(), e); throw new IllegalArgumentException(e.getMessage()); }} |
//报文示例POST http://172.16.30.108:8138/api/doDeliverPOST data:{ "appkey":"00d40313b7f340ec8df6a3dff293d45c", "p0":"PDS", "p1":"PDS-test", "p2":"d84321b2-49a4-4d0e-8783-4fc400df4760", "p3":"STATION_EUAE,STATION_SZAE", "p4":"我是测试", "p5":"test", "p9":"123", "timestamp":"1528877765741", "signStr":"L4c8LWrbHe1U7CIBA/AWfg=="}[no cookies]Request Headers:Connection: closecontent-type: application/jsonContent-Length: 290Host: 172.16.30.108:8138User-Agent: Apache-HttpClient/4.5.5 (Java/1.8.0_151) |
使用说明:
客户端jar包引入
<dependency> <groupId>com.fpx.sync</groupId> <artifactId>fpx-sync-client</artifactId> <version>1.1.1-SNAPSHOT</version> </dependency> |
引入客户端配置文件或自行添加配置项
引入配置文件注入客户端配置数据<import resource="classpath*:spring-sync-client.xml" />或者自行添加配置项注入<bean class="com.fpx.sync.client.deliver.util.ConfigUtils"> <!-- 传送站同步地址 --> <property name="stationSyncHost" value="172.16.30.108"></property> <!-- 传送站同步端口 --> <property name="stationSyncPort" value="33306"></property> <!-- 传送站同步文件路径 --> <property name="stationSyncFileBasePath" value="/mnt/sync"></property> <!-- 传送服务登录秘钥 --> <property name="stationDeliverServerLoginPwd" value="B6C3BCCE61DE2A68BE1BF58C5DFDEC9D"></property> <!-- 压缩包的文件扩展名 --> <property name="compressExtention" value="war,apk,rar,zip,tar,iso,gzip,7z,tar.gz"></property> </bean> |
配置properties中添加配置项
#客户端连接地址CLIENT_STATION_SYNC_HOST=127.0.0.1#客户端连接端口CLIENT_STATION_SYNC_PORT=33301#传送站文件存储路径CLIENT_STATION_SYNC_FILE_BASE_PATH=/mnt/sync/#传送站程序交互登录秘钥CLIENT_STATION_DELIVER_SERVER_LOGIN_PWD=B6C3BCCE61DE2A68BE1BF58C5DFDEC9D #压缩文件类型COMPRESS_EXTENTION=war,apk,rar,zip,tar,iso,gzip,7z,tar.gz |
客户端使用示例代码
|
数据到
java HTTP代码示例的更多相关文章
- java集合代码示例
一.List ArrayList 使用List时,最好初始化容量. ArrayList的默认容量为10,每次扩容增0.5倍,假如要放置100个元素,需要多次扩容. List<String> ...
- Java多态——代码示例
刚开始看多态的文字定义时,总是不明白说的啥意思,看了一些示例代码后,总算知道了,其实也就是“多态”的字面意思. 如下: class A{ public void Out() { System.out. ...
- Java多线程代码示例
package algorithm; class Mythread extends Thread{ String name; public Mythread(String name){ this.na ...
- Java基础知识强化之IO流笔记72:NIO之 NIO核心组件(NIO使用代码示例)
1.Java NIO 由以下几个核心部分组成: Channels(通道) Buffers(缓冲区) Selectors(选择器) 虽然Java NIO 中除此之外还有很多类和组件,Channel,Bu ...
- 使用XStream注解实现Java对象与XML互相转换的代码示例
本文记录一下使用xstream这个api的注解特性对Java对象与XML字符串相互转换的一些代码示例. 我们很多人都处理过XML文件,也有很多非常成熟的第三方开源软件.如:jdom.dom4j等 ...
- JAVA NIO工作原理及代码示例
简介:本文主要介绍了JAVA NIO中的Buffer, Channel, Selector的工作原理以及使用它们的若干注意事项,最后是利用它们实现服务器和客户端通信的代码实例. 欢迎探讨,如有错误敬请 ...
- 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例
Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构 ...
- [置顶] think in java interview-高级开发人员面试宝典代码示例
下载资源地址为: http://download.csdn.net/detail/lifetragedy/6379755 这是think in java interview中的代码示例,包括JAVA基 ...
- MapReduce序列化及分区的java代码示例
概述 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化的逆过程.把字节流转为结构化对象. 当要在进程间传递对象或持久化对象的时候, ...
随机推荐
- Favorite Donut--hdu5442(2015年长春网选赛,kmp,最大表示法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5442 打比赛的时候还没学kmp更没有学最大最小表示法,之后做完了kmp的专题,学了它们,现在再来做这道 ...
- 《Monitoring and Tuning the Linux Networking Stack: Receiving Data》翻译
Overview 从宏观的角度来看,一个packet从网卡到socket接收缓冲区的路径如下所示: 驱动加载并初始化 packet到达网卡 packet通过DMA被拷贝到内核中的一个ring buff ...
- 小技巧-如何加快github下载代码的速度(转)
作为开发人员,github是大家的标配了,常常会苦恼于gitclone某个项目的时候速度太慢,看着控制台那几K十几K的龟速,吐血!! 原因很简单:github的CDN被伟大的墙屏蔽所致. 所以解决方案 ...
- excel判断单元格包含指定内容的函数用=IF(COUNTIF(A1,"*内容*"),"0","1")
前面我们聊过怎样将Excel包含某字符的单元格填充颜色,这边我们用另外一种方法来实现:excel判断单元格包含指定内容的函数 选中需要显示结果的单元格,假设我们要判断第一行第一列的单元格A1是否含有“ ...
- ubuntu下30天自制os 的学习计划
30天自制os的学习也告一段落,由于有其他更重要的事情要集中精力去处理.书本从15天開始就是多任务了.可是不得不停下一阵子. 以下总结下学习中遇到的一些问题. 1:学习这前14天中.问题最大的是关于G ...
- how to use greendao in android studio
http://www.arjunsk.com/android/use-greendao-android-studio/ 1.新建一个java文件MainGenerator.java: import d ...
- TensorFlow学习笔记(六)循环神经网络
一.循环神经网络简介 循环神经网络的主要用途是处理和预测序列数据.循环神经网络刻画了一个序列当前的输出与之前信息的关系.从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面节点的输出. ...
- SQLSERVER2016 无域控AlwaysOn 实施步骤
SQLSERVER2016 无域控AlwaysOn 实施步骤 步骤: 一.安装3个windows server 2016系统 1)在3台机器建立具有administrators权限的相同账号密码,本例 ...
- vue-cli脚手架build目录中的webpack.base.conf.js配置文件
转载自:http://www.cnblogs.com/ye-hcj/p/7082620.html webpack.base.conf.js配置文件// 引入nodejs路径模块 var path = ...
- Shiro安全框架入门篇
一.Shiro框架介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权.Shiro在JavaSE和JavaEE项目中都可以使用.它主要用来处理身份认证,授权,企业会话管理和加 ...