private <T extends HttpRequestBase> Object exec(final ChainedHttpConfig requestConfig, final Function<URI, T> constructor) { try { final ChainedHttpConfig.ChainedRequest cr = requestConfig.getChainedRequest(); final URI theUri = cr.getUri().toURI(); final T request = constructor.apply(theUri); if ((request instanceof HttpEntityEnclosingRequest) && cr.actualBody() != null) { final HttpEntity entity = entity(requestConfig); ((HttpEntityEnclosingRequest) request).setEntity(entity); request.setHeader(entity.getContentType()); } addHeaders(cr, request); if (proxyInfo != null && proxyInfo.getProxy().type() == Proxy.Type.HTTP) { HttpHost proxy = new HttpHost(proxyInfo.getAddress(), proxyInfo.getPort(), proxyInfo.isSecure() ? "https" : "http"); request.setConfig(RequestConfig.custom().setProxy(proxy).build()); } return client.execute(request, new Handler(requestConfig), context(requestConfig)); } catch (Exception e) { return handleException(requestConfig.getChainedResponse(), e); } }
private <T extends HttpRequestBase> Object exec(final ChainedHttpConfig requestConfig, final Function<URI, T> constructor) { try { final ChainedHttpConfig.ChainedRequest cr = requestConfig.getChainedRequest(); final URI theUri = cr.getUri().toURI(); final T request = constructor.apply(theUri); if ((request instanceof HttpEntityEnclosingRequest) && cr.actualBody() != null) { final HttpEntity entity = entity(requestConfig); ((HttpEntityEnclosingRequest) request).setEntity(entity); request.setHeader(entity.getContentType()); } addHeaders(cr, request); if (proxyInfo != null && proxyInfo.getProxy().type() == Proxy.Type.HTTP) { HttpHost proxy = new HttpHost(proxyInfo.getAddress(), proxyInfo.getPort(), proxyInfo.isSecure() ? "https" : "http"); request.setConfig(RequestConfig.custom().setProxy(proxy).build()); } return client.execute(request, new Handler(requestConfig), context(requestConfig)); } catch (Exception e) { return handleException(requestConfig.getChainedResponse(), e); } }