Boa tarde,
Qual são os principais motivos dessa exception acontecer? No meu caso estou desconfiada que a conexão esteja encerrando de alguma forma antes de enviar as informações. Alguém aqui já passou por algo parecido?
No meu projeto a aplicação Consome uma api que traz dados do cliente, estou usando uma classe que é responsavel por fazer essa parte e conexão e é nela que está dando o erro:
java.net.SocketException: Connection reset
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1944)
at sun.net.www.protocol.htt...et.www.http.HttpClient.parseHTTP(HttpClient.java:678)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:706)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
at com.everis.eva.utils.WebRequestUtil$Builder.callUrl(WebRequestUtil.java:233)
... 75 more
O trecho de código que o erro está indicando é esse, onde está a linha do BufferedReader:
public Map<String, String> callUrl(String uri) throws IOException, HTTPException {
String queryString;
if (this.queryParameters.size() > 0) {
queryString = this.queryString();
if ("GET".equals(this.method) || this.body != null) {
String pre = "?";
if (uri.contains("?")) {
pre = "&";
}
uri += pre + queryString.substring(0, queryString.length() - 1);
} else {
this.body = queryString;
this.contentType(MediaType.APPLICATION_FORM_URLENCODED.getType());
}
}
URL url = new URL(uri);
HttpURLConnection con;
if (this.proxyAddress != null && this.proxyPort != null) {
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyAddress, proxyPort));
con = (HttpURLConnection) url.openConnection(proxy);
} else {
con = (HttpURLConnection) url.openConnection();
}
con.setRequestMethod(this.method);
con.setDoOutput(this.body != null);
con.setDoInput(true);
con.setUseCaches(false);
for (Entry<Object, Object> header : this.headers.entrySet()) {
con.setRequestProperty((String) header.getKey(), (String) header.getValue());
}
if (this.body != null) {
con.getOutputStream().write(this.body.getBytes(Charset.forName("UTF-8")));
}
try {
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(con.getInputStream(), Charset.forName("UTF-8")));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
Map<String, String> response = new HashMap<>();
response.put("text", sb.toString());
response.put("code", String.valueOf(con.getResponseCode()));
return response;
} catch (Exception ex) {
throw new HTTPException(con.getResponseCode());
}
}