java HTTP代码示例
//测试环境发送用例 @Test public 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/doDeliver POST 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: close content-type: application/json Content-Length: 290 Host: 172.16 . 30.108 : 8138 User-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)是序列化的逆过程.把字节流转为结构化对象. 当要在进程间传递对象或持久化对象的时候, ...
随机推荐
- 剑指Offer——数组中只出现一次的数字
题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 分析: 数组中一共有偶数个数.两个数字只出现过一次. 相同数异或在一起等于0,那么将所有数异或 ...
- MySQL 最基本的SQL语法/语句
DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOK ...
- 22.解决 eclipse 与 AS 共用 SDK 导致 eclipse ADT 无法使用的问题
相信很多同学在从eclipse 转 AS 都会遇到这个问题,因为方便所以共用了一个sdk 目录,但是AS 会主动更新sdk,然而手贱的跟新了一夜,再打开eclipse的时候瞬间呆滞了,这一夜发生什么了 ...
- 推荐系统第3周--- 大数据环境下的itemCF实现
代码报错注意事项: 1:最后Ctrl+shift+O 导入包2:导入mahout包3:新建datafile文件包,在其下面新建csv文件
- php集成财付通支付接口
<?phpif(!defined('DEDEINC')) exit('Request Error!');/** *财付通接口类 */class tenpay{ var $dsql; var $m ...
- java反射之构造方法(三)
一. 1. 二.获取类的构造方法信息. ######################################################################## 三.
- Kafka(一)
1.安装zookeeper集群 2.下载kafka wget http://mirror.bit.edu.cn/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz 配 ...
- SqlHelper简单实现(通过Expression和反射)9.Sql表述对象SqlSession
此类是整个SqlHelper的另一个核心,基本思想就是通过EntityHelper,ObjectHelper和ExpressionHelper获取拼接Select语句的全部元素,拼接出完整Select ...
- Eclipse+Spark搭建源码分析环境问题分析
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- 新linux系统上rz 与sz命令不可用
使用命令进行安装:yum install lrzsz 即可使用