这个错谁见过?长时间执行出的
java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:652)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
at GetUserData.getDataFromUrl(GetUserData.java:112)
at GetUserData.main(GetUserData.java:61)
292min
更新数据库操作,执行了292分钟之后出现了这个问题退出,这是什么原因?
代码:
Java code
public static String getDataFromUrl(String url) throws IOException {
String getURL = url;
URL getUrl = new URL(getURL);
HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection();
connection.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));//出错行at GetUserData.getDataFromUrl(GetUserData.java:112)
String lines;
String result = "";
while ((lines = reader.readLine()) != null) {
result = result + lines;
}
reader.close();
connection.disconnect();
return result;
}
------解决方案--------------------------------------------------------你的while里应该反过来写。
把常量写在左边才能避免
空指针的错误。
当然这貌似和你遇到的问题没什么关系。
但是保持良好的编码规范才好。
------解决方案--------------------------------------------------------Http连接超时了
------解决方案--------------------------------------------------------
这么长时间的网络连接,服务器端设计肯定有问题,一旦出现网络故障就会全功尽弃