AsyncHttpSupport并发发送请求
public class AsyncHttpSupportTest {
@InjectMocks
private AsyncHttpSupport asyncHttpSupport;
@Mock
private HttpSupport support;
public static void main(String[] args) throws InterruptedException {
AsyncHttpSupport asyncHttpSupport = new AsyncHttpSupport();
asyncHttpSupport.addDefaultHttpHeader("Cache-Control", "no-Cache");
asyncHttpSupport.addDefaultHttpHeader("X-Service-Chain", "prj00804");
asyncHttpSupport.addDefaultHttpHeader("Content-Type", "application/json");
String test = "{\"bizContent\":\"{\\\"kdtId\\\":\\\"30338372\\\",\\\"mchId\\\":\\\"30338372\\\"}\",\"method\":\"test2\",\"service\":\"XXX.pay.test\",\"partnerId\": \"820000000003\", \"sign\":\"38F7FBBA82AA6424A69F810E95059FC5\", \"version\": \"1.0.3\"}";
String url = "http://10.9.169.40:7001/gw";
String queryBankCardList = "{\"bizContent\":\"{}\",\"method\":\"bankinfo\",\"service\":\"XXX.pay.merchant.withdraw\",\"partnerId\": \"820000000003\", \"sign\":\"38F7FBBA82AA6424A69F810E95059FC5\", \"version\": \"1.0.0\"}";
AtomicInteger reject = new AtomicInteger(0);
AtomicInteger counter = new AtomicInteger(0);
Thread[] pools = new Thread[Runtime.getRuntime().availableProcessors()];
for (int i = 0; i < Runtime.getRuntime().availableProcessors(); i++) {
new Thread(() -> {
try {
for (int j = 0; j < 100; j++) {
counter.incrementAndGet();
Future<HttpResponse> res = asyncHttpSupport.post(url,j % 2 == 0 ? test : queryBankCardList);
HttpResponse httpResponse = res.get();
if (EntityUtils.toString(httpResponse.getEntity()).contains("\"code\":50002")) {
reject.incrementAndGet();
}
}
} catch (Exception e) {
}
}
).start();
}
TimeUnit.SECONDS.sleep(50);
System.out.println(reject.get());
System.out.println(counter.get());
}
AsyncHttpSupport并发发送请求的更多相关文章
- Python使用grequests并发发送请求
目录 前言 grequests简单使用 grequests和requests性能对比 异常处理 前言 requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快.但是 ...
- 使用dispatch_group实现并封装分组并发网络请求
在实际开发中我们通常会遇到这样一种需求:某个页面加载时通过网络请求获得相应的数据,再做某些操作.有时候加载的内容需要通过好几个请求的数据组合而成,比如有两个请求A和B,我们通常为了省事,会将B请求放在 ...
- spring MVC 管理HttpClient---实现在java中直接向Controller发送请求
在spring MVC中,大多数时候是由客户端的页面通过ajax等方式向controller发送请求,但有时候需要在java代码中直接向controller发送请求,这时可以使用HttpCilent实 ...
- vue2.0项目实战(3)使用axios发送请求
在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...
- php使用curl模拟多线程发送请求
每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求.php的curl多线程是通过不断调用curl_multi_e ...
- Vue笔记:使用 axios 发送请求
在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...
- vue2.0项目实战使用axios发送请求
在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...
- socket发送请求,协程
1.socket发送请求 #发送请求的方式 #方式一 import requests ret = requests.get("https://www.baidu.com/s?wd=abc&q ...
- RestTemplate发送请求并携带header信息
1.使用restTemplate的postForObject方法 注:目前没有发现发送携带header信息的getForObject方法. HttpHeaders headers = new Http ...
随机推荐
- windows docker常用命令
关键词 示例 作用 attach sudo docker run -itd ubuntu:14.04 /bin/bash 进入容器 exec docker exec -it mysql bash 在容 ...
- P1233 木棍加工 dp LIS
题目描述 一堆木头棍子共有n根,每根棍子的长度和宽度都是已知的.棍子可以被一台机器一个接一个地加工.机器处理一根棍子之前需要准备时间.准备时间是这样定义的: 第一根棍子的准备时间为1分钟: 如果刚处理 ...
- Noj - 在线强化训练2
状态 题号 竞赛题号 标题 1572 A 九鼎之尊(一) 1573 B 九鼎之尊(二) 1453 C 筛法(Sieve Method) 1134 D 亲密数(close numbers ...
- mysql 分区 1526错误
mysql 分区 原文:http://fyzjhh.blog.163.com/blog/static/1694442262012544429953/ 参考:https://bugs.mysql.com ...
- hdu 2091空心三角形
把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果. Input每行包含 ...
- 20165220 Java第四周学习总结
教材学习内容总结 super:使用关键字super来访问和调用被子类隐藏的成员变量和方法. 接口:用关键字interface来定义一个接口.接口由类来实现以便使用接口中的方法,用关键字implemen ...
- Python库: PrettyTable 模块
一,PrettyTable简介 PrettyTable是python中的一个第三方库,可用来生成美观的ASCII格式的表格: 二,PrettyTable安装 使用PIP即可十分方便的安装PrettyT ...
- Django之第三方登陆模块
Django之第三方登陆模块 前期准备 安装 django-allauth pip install django-allauth 注意,django-allauth 需要在 Django1.10以上版 ...
- 简单总结下opacity、transparent以及rgba
这几个概念最开始学的时候只是有个大致印象,现在复习这部分的知识点,发现不仔细区分一下,还真有点混乱. 三者共同点是都和透明有关.先分着来说一下: 1.opacity用来设置元素的不透明级别,从 0.0 ...
- Java并发编程(十四)-- 线程池实现原理
在上一章我们从宏观上介绍了ThreadPoolExecutor,本文将深入解析一下线程池的具体实现原理 原理解析 线程池状态 在ThreadPoolExecutor中定义了一个volatile变量,另 ...