猿问

没有主机端口号的Apache HttpClient执行方法

我们正在用 Java 创建一个反向代理应用程序,它只是将请求转发到下游系统并获取响应并将其发送回 UI。


为此,我们开始使用 Apache HttpClient 库。当我们像下面这样配置时,Http 客户端执行工作完美。它正在处理所有请求(GET、POST、PUT、DELETE)。它是以通用方式制作的。


 HttpRequest request = null;

    if (request.getHeader(HttpHeaders.CONTENT_LENGTH) != null

                    || request.getHeader(HttpHeaders.TRANSFER_ENCODING) != null) {

        HttpEntityEnclosingRequest proxyRequest = new BasicHttpEntityEnclosingRequest(method, requestUri);

        proxyRequest.setEntity(new InputStreamEntity(servletRequest.getInputStream(), getContentLength(servletRequest)));


    } else {

        proxyRequest = new BasicHttpRequest(method, requestUri);

    }

    request = proxyRequest;

    HttpResponse response = httpClient.execute(new HttpHost("http://custdomain.com", 8443, "https"),request);

但是当我尝试只使用没有端口号的 url 时,我无法连接到下游系统。


HttpResponse response = httpClient.execute(new HttpHost("http://custdomain.com",-1, "https"),request);

请提出建议。


长风秋雁
浏览 191回答 2
2回答

蝴蝶刀刀

通过启用 TLSv1.2 解决了这个问题
随时随地看视频慕课网APP

相关分类

Java
我要回答