public void benchmark(int rounds, int threads, int requests) { final HttpClient client = HTTP.client().reuseConnections(true).keepAlive(true) .maxConnTotal(threads).maxConnPerRoute(threads).keepCookies(false); final HttpReq req = this; for (int i = 0; i < rounds; i++) { Msc.benchmarkMT(threads, "req", requests, () -> { HttpResp resp = client.executeRequest(req, null).get(); U.notNull(resp, "HTTP response"); }); } client.close(); }
public static HttpReq req() { return client.req(); }
public static HttpClient client() { return new HttpClient(); }
@Override protected HttpClient createClient() { return HTTP.client() .reuseConnections(reuseConnections()) .keepCookies(false) .maxConnTotal(maxConnections()) .maxConnPerRoute(maxConnectionsPerRoute()); }
static CloseableHttpAsyncClient client(HttpClient client) { ConnectionReuseStrategy reuseStrategy = client.reuseConnections() ? new DefaultConnectionReuseStrategy() : new NoConnectionReuseStrategy(); .disableConnectionState() .disableAuthCaching() .setMaxConnPerRoute(client.maxConnPerRoute()) .setMaxConnTotal(client.maxConnTotal()) .setConnectionReuseStrategy(reuseStrategy) .setRedirectStrategy(client.followRedirects() ? new DefaultRedirectStrategy() : NO_REDIRECTS); if (!client.validateSSL()) { builder.setSSLContext(TLSUtil.createTrustingContext()); builder.setSSLHostnameVerifier(new AllowAllHostnameVerifier()); if (!U.isEmpty(client.cookies())) { BasicCookieStore cookieStore = new BasicCookieStore(); for (Map.Entry<String, String> e : client.cookies().entrySet()) { BasicClientCookie cookie = new BasicClientCookie(e.getKey(), e.getValue()); String host = client.host(); U.notNull(host, "HTTP client host"); if (client.userAgent() != null) { builder = builder.setUserAgent(client.userAgent()); if (!client.keepCookies() && U.isEmpty(client.cookies())) { builder = builder.disableCookieManagement();
public synchronized void reset() { close(); } }
public Future<HttpResp> execute(Callback<HttpResp> callback) { return client.executeRequest(this, callback); }
public HttpClient cookie(String name, String value) { cookies().put(name, value); return this; }
@Override protected HttpClient createClient() { return HTTP.client() .reuseConnections(reuseConnections()) .keepCookies(false) .maxConnTotal(maxConnections()) .maxConnPerRoute(maxConnectionsPerRoute()); }
public void close() { client.close(); } }
public HttpResp execute() { return client.executeRequest(this, null).get(); }
public HttpReq trace(String url) { return req().verb(HttpVerb.TRACE).url(url); }
public static synchronized void close() { HttpClient oldClient = client; client = client(); oldClient.close(); }
public HttpReq post(String url) { return req().verb(HttpVerb.POST).url(url); }
public HttpReq delete(String url) { return req().verb(HttpVerb.DELETE).url(url); }
public HttpReq patch(String url) { return req().verb(HttpVerb.PATCH).url(url); }
public HttpReq options(String url) { return req().verb(HttpVerb.OPTIONS).url(url); }
public HttpReq get(String url) { return req().verb(HttpVerb.GET).url(url); }
public HttpReq put(String url) { return req().verb(HttpVerb.PUT).url(url); }
public HttpReq head(String url) { return req().verb(HttpVerb.HEAD).url(url); }