当前位置: 首页 > 知识库问答 >
问题:

连接重置错误-REST服务客户端

冯澄邈
2023-03-14

我收到连接重置错误,代码如下。到底是什么原因导致了连接重置?这是因为我试图忽略SSL证书验证的方式吗?

String serviceUri = "https://service.providers.com/applications";
String reqJson = "request json string";

//this is to ignore SSL validation.
SSLContextBuilder builder = new SSLContextBuilder();
builder.loadTrustMaterial(null, new TrustStrategy() {
    @Override
    public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        return true;
    }
});

SSLConnectionSocketFactory sslSF = new SSLConnectionSocketFactory(builder.build(),
        SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);


CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslSF).build();;
HttpPost postRequest = new HttpPost(serviceUri);

StringEntity input = new StringEntity(reqJson);
input.setContentType("application/json");
postRequest.setEntity(input);

CloseableHttpResponse response = httpClient.execute(postRequest);

try {
    //do some stuff
    ///

    //make sure you consume the entire response
    HttpEntity entity = response.getEntity();
    EntityUtils.consume(entity);

} catch (IllegalStateException e) {
    e.printStackTrace();
}finally{
    response.close();
}

堆栈跟踪

java.net.SocketExcema:连接重置java.net.SocketInputStream.read(SocketInputStream.java:179)com.ibm.jsse2. a. a(a.java:148)com.ibm.jsse2. a. a(a.java:96)com.ibm.jsse2.tc.(tc.java:302)com.ibm.jsse2.tc.(tc.java:208)com.ibm.jsse2.tc.(tc.java:482)com.ibm.jsse2.tc.start握手(tc.java:597)org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:275),org.apache.http.conn.ssl.SSLConnectionSocketFactory. ConnectSocket(SSLConnectionSocketFactory. java: 254),网址为org. apache. http. imp. conn。连接(HttpClientConnection操作员. java: 117)在org. apache. http. imp. conn。PoolingHttpClientConnectionManager. Connect(PoolingHttpClientConnectionManager. java: 314)位于org. apache. http. imp. exchain。在org. apache. http. imp. exc.建立路由(Main ClientExec. java: 363)。在org. apache. http. imp. exc.执行(Main ClientExec. java: 219)。在org. apache. http. imp. exchain中执行(原型执行. java: 195)。执行(RetryExec. java: 86)在org. apache. http. imp. exc链。执行(ReDirectExec. java: 108)在org. apache. http. imp. client.InternalHttpClient. doExecute(InternalHttpClient. java: 186)at org. apache. http. pp. client.执行(CloseableHttpClient. java: 82)在org. apache. http. imp. client.执行(CloseableHttpClient. java: 106)

共有1个答案

闽康安
2023-03-14

我能够解决这个问题。这是一个与网络相关的问题。从安装在本地计算机上的服务器发出的请求不会通过代理服务器路由。但是我们公司的防火墙不喜欢跳过代理的请求,所以它放弃了连接。一旦我将代理路由规划器添加到超文本传输协议请求中,我的请求就会通过。

 类似资料:
  • 更新:以下错误消息来自。 错误:服务器访问错误:连接重置URL=https://repo1.Maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom Maven central:org/fusesource/jansi#jansi;1.11:res=https://repo1.Maven.org/maven2/org/fuses

  • 问题内容: 我有一个RMI服务器和一个桌面RMI客户端。重新启动服务器时,客户端出现错误。是否可以在不重新启动客户端的情况下重新启动RMI连接? [编辑]这是堆栈跟踪: 问题答案: 服务器终止后,您将收到一个ConnectException。之后,您可以使用Naming.lookup获取新的服务器对象。

  • 我有一个示例Spring启动应用程序来运行图形QL服务器,具有作为客户端,我的pom有以下依赖项: 当我尝试从客户端连接时,出现以下错误: 狩猎决议好心建议。 我还有几个问题: 我应该使用SimpleGraphQLHttpServlet将请求路由到endpoint吗 我正在React UI上使用apollo client,那么它是强制使用apollo server还是spring boot可以工作

  • 我进入了一个客户机和服务器进行通信、相互发送消息的阶段。 我遇到的问题是如何关闭连接而不会导致错误? 如果我终止其中一个导致连接丢失的应用程序(服务器或客户端),然后导致等待输入的循环无限期地循环,并显示null。 我试图关闭插座,缓冲区,甚至线程,都不工作。 这是客户端 这是服务器端 两者都使用这些类: 唯一的区别是服务器在上面所说的位置有这个位, 所以基本上,客户端连接,服务器接受,然后客户端

  • 我正在学习一些基本的java网络知识,我试图让我学到的东西变成现实,所以当我在同一台计算机上运行我的服务器和客户端类时,它运行时没有错误,但是当我将客户端项目带到另一台计算机并运行项目运行服务器后,它冻结并打印连接超时语句。 这是我的服务器代码 这是我的客户

  • 客户端应用程序在以下代码处挂起: