Java 是否有一个轻量级的REST客户端框架允许并行构造请求?

Java 是否有一个轻量级的REST客户端框架允许并行构造请求?,java,rest,http,kotlin,unirest,Java,Rest,Http,Kotlin,Unirest,我爱你,我真的爱你 不幸的是,它似乎不是非常线程安全的 我尝试将我的请求并行化: runBlocking { for (a in 0..9) async{ for (b in 0..9) async{ for (c in 0..9) async{ if (!found) Unirest.post(targetURL) .body(String.format(requestTem

我爱你,我真的爱你

不幸的是,它似乎不是非常线程安全的

我尝试将我的请求并行化:

runBlocking {
    for (a in 0..9) async{
        for (b in 0..9) async{
            for (c in 0..9) async{
                if (!found) Unirest.post(targetURL)
                    .body(String.format(requestTemplate, a, b, c))
                    .asStringAsync(object : Callback<String> {...})
            }
        }
    }
}
代码在没有
async
s的情况下运行良好,因此我将把错误归咎于对不打算并发访问的资源的并发访问。(如果我错了,请告诉我。)


是否有轻量级的客户端框架允许这种并行化?

您研究过以下内容吗<代码>Unirest.setAsyncHttpClient(asyncHttpClient)和
Unirest.setConcurrency(int-maxTotal,int-maxPerRoute)
(其中
asyncHttpClient
HttpAsyncClient
)您似乎也可以使用它:
Unirest.post(…).someMethod(…).asJsonAsync(新回调(){//匿名类})你有没有研究过以下内容<代码>Unirest.setAsyncHttpClient(asyncHttpClient)
Unirest.setConcurrency(int-maxTotal,int-maxPerRoute)
(其中
asyncHttpClient
HttpAsyncClient
)您似乎也可以使用它:
Unirest.post(…).someMethod(…).asJsonAsync(新回调(){//匿名类})
Feb 11, 2019 11:44:51 PM org.apache.http.impl.nio.client.InternalHttpAsyncClient run
SEVERE: I/O reactor terminated abnormally
com.mashape.unirest.http.exceptions.UnirestException: java.net.ConnectException
    at com.mashape.unirest.http.HttpClientHelper$1.failed(HttpClientHelper.java:86)
    at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:134)
    at org.apache.http.impl.nio.client.AbstractClientExchangeHandler.failed(AbstractClientExchangeHandler.java:419)
    at org.apache.http.impl.nio.client.AbstractClientExchangeHandler.connectionRequestFailed(AbstractClientExchangeHandler.java:335)
    at org.apache.http.impl.nio.client.AbstractClientExchangeHandler.access$100(AbstractClientExchangeHandler.java:62)
    at org.apache.http.impl.nio.client.AbstractClientExchangeHandler$1.failed(AbstractClientExchangeHandler.java:378)
    at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:134)
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalPoolEntryCallback.failed(PoolingNHttpClientConnectionManager.java:503)
    at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:134)
    at org.apache.http.nio.pool.RouteSpecificPool.timeout(RouteSpecificPool.java:170)
    at org.apache.http.nio.pool.AbstractNIOConnPool.requestTimeout(AbstractNIOConnPool.java:560)
    at org.apache.http.nio.pool.AbstractNIOConnPool$InternalSessionRequestCallback.timeout(AbstractNIOConnPool.java:821)
    at org.apache.http.impl.nio.reactor.SessionRequestImpl.timeout(SessionRequestImpl.java:182)
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processTimeouts(DefaultConnectingIOReactor.java:212)
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:157)
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:350)
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:191)
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException
    ... 10 more