人丑就要多读书(14)
2015-08-31 18:37
281 查看
上周接金立的sdk,客户端这边做了很多服务器端的工作,导致我们这边收不到pay_id,虽然没什么问题,不知道对于最后的订单校验有影响没。然后我们这边签名错误了,与服务器上传下来的签名比对错误,我自作聪明的吧所有参数拿下来,用postman发给自己测试,但是在校验Base64.decode(sign)的时候报错了,具体错误是length not correct:got 126 but was expect 128,简单的说就是Base64.decode(sign)搞出来的是byte[]126,而实际需要的是128报的错,直接就没法校验了,but服务器上却可以校验,只不过是校验出错了,今天回来在导师的帮助了,发现了,原来我把服务器上的sign直接复制下来,通过postman发给自己的时候,'+'变成了'
',加号变成了空格,导致直接没法校验,后来replaceAll("+"," ")之后,就可以了。最后的问题再看了金立提供的文档之后发现了,就是notifyUrl我们加了参数,但是校验的时候拿掉,签名就通过了。
今天在真神的帮助下还把通告的重复发送完成了,对线程又稍微理解了一下。需求:我们需要往不同的服务器通过指定的时间间隔,发送一定数量的通告,然后我在怎么创建线程、然后将所有服一起发的时候卡住了,因为Thread.sleep(1000miles)的时候把主线程也给停了,导致不是同时发的,后来真神发我一个demo,看了下大受启发。发现不同的方法调用后所传维护的Thread是不用的,然后终于完成了 !
',加号变成了空格,导致直接没法校验,后来replaceAll("+"," ")之后,就可以了。最后的问题再看了金立提供的文档之后发现了,就是notifyUrl我们加了参数,但是校验的时候拿掉,签名就通过了。
今天在真神的帮助下还把通告的重复发送完成了,对线程又稍微理解了一下。需求:我们需要往不同的服务器通过指定的时间间隔,发送一定数量的通告,然后我在怎么创建线程、然后将所有服一起发的时候卡住了,因为Thread.sleep(1000miles)的时候把主线程也给停了,导致不是同时发的,后来真神发我一个demo,看了下大受启发。发现不同的方法调用后所传维护的Thread是不用的,然后终于完成了 !
package sql; import java.util.ArrayList; import java.util.List; /** * Created by chuancong.yan on 2015/8/31. */ public class ThreadTest { public static void task(int number){ List<Thread> list = new ArrayList<Thread>(); for(int i = 0; i < number; i++){ Thread thread = new Thread(new TimerTask(10000, 3, i+"")); thread.start(); list.add(thread); } } public static void main(String[] args) throws InterruptedException{ task(3); while(true){ System.out.println("1111111111111111"); Thread.sleep(1000); } } } class TimerTask implements Runnable { private long sleepTime; private int times; private String message; public TimerTask(long sleepTime, int times, String message) { this.sleepTime = sleepTime; this.times = times; this.message = message; } @Override public void run() { int i =0; while(i < times){ System.out.println(message); i++; try { Thread.sleep(sleepTime); } catch (InterruptedException e) { e.printStackTrace(); } } } }
相关文章推荐
- rabbitmq的启动问题
- MFC对话框整合
- UITableview reloadData偶尔出现崩溃
- Cloudera-Manager修改集群的IP
- Java SHA-256 算法实例
- 【学习笔记】孤儿进程和僵尸进程
- freemarker程序开发
- js编码后台解码
- X86 openWRT 虚拟机编译教程 在ubuntu10中X86 OpenWRT的源码编译
- 一次完整的HTTP请求所经历的7个步骤
- ISO/IEC 9899:2011 条款6.4——词法元素
- Cloudera-Manager修改集群的IP
- web工程引用其他java工程解决方法
- Python单元测试框架Pytest——如何生成测试报告
- Android学习笔记(五)Fragment简介
- NGUI消耗性能分析
- 利用Amazon Mobile Analytics与R深入探究移动应用的使用模式
- HDU 3594
- android 加载图片到内存(缩放)
- 常见的PHP设计模式