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());
}

原文地址:https://www.cnblogs.com/ceshi2016/p/9969340.html