【问题标题】:Java net socket exception- Connection reset - How to fix from javaJava 网络套接字异常 - 连接重置 - 如何从 java 修复
【发布时间】:2019-05-26 03:59:35
【问题描述】:

我已尝试执行以下 sn-p:

URL obj = new URL(serviceLastURL);
conn = (HttpURLConnection) obj.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("x-ibm-client-id", IrProperties.getXIBMClientId());
conn.setRequestProperty("x-ibm-client-secret", IrProperties.getXIBMClientSecret());
conn.setRequestProperty("OAuth-Token", accessToken); conn.setDoOutput(true);
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
for (int c; (c = in.read()) >= 0;)
    sb.append((char) c);

一旦连接突然失败, 当我尝试连接到同一个URL 时,出现以下异常:

java.net.socketException - connection reset

如何通过响应刷新 URL?

我怎样才能防止这个异常?

【问题讨论】:

  • 请提供整个代码块,而不是简短的摘录。
  • URL obj = 新 URL(serviceLastURL); conn = (HttpURLConnection) obj.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("x-ibm-client-id", IrProperties.getXIBMClientId()); conn.setRequestProperty("x-ibm-client-secret", IrProperties.getXIBMClientSecret()); conn.setRequestProperty("OAuth-Token", accessToken); conn.setDoOutput(true); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); StringBuilder sb = new StringBuilder(); for (int c; (c = in.read()) >= 0;) sb.append((char) c);
  • 感谢您的更新。仍然无法理解 连接突然失败 是什么意思?您正在尝试执行 GET 请求,然后读取请求结果。什么时候连接失败?你是如何执行这个 sn-p 的?
  • 我正在尝试从 REST Api 调用中获取一些数据。有时这正在发生。

标签: java sockets httpurlconnection


【解决方案1】:

您没有关闭连接。使用后请务必关闭连接。

此外,您请求的连接可能无法从客户端获得。

【讨论】:

  • 你好 Shankar,如果我这样做 - 是否会保证这个套接字重置异常不会出现 - 最后 { if (null != in) { try { in.close(); } catch (IOException 忽略) {} } if(null != conn) { conn.disconnect(); } }
  • in = inputStream, conn 是连接
猜你喜欢
  • 2012-11-03
  • 1970-01-01
  • 2012-01-16
  • 2014-09-18
  • 1970-01-01
  • 2019-10-21
  • 2011-05-28
  • 1970-01-01
  • 2012-12-10
相关资源
最近更新 更多