java.net.SocketException: сброс соединения, используя HttpURLConnection на странице GET - PullRequest
0 голосов
/ 05 февраля 2019

Программно получая страницу с Java (HttpURLConnection) выдает ошибку java.net.SocketException: сброс соединения.Работает с Python и с Почтальоном.

Пробовал с другими страницами, такими как страница входа в gmail, страница входа в систему ebanking и т. Д., И это работает, но только для одного сайта (тот, который мне нужен для работы) - нет.Преемник со сценарием Python, Postman также работает, но Java не

String url="https://********************/Login";
URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
        con.setRequestProperty("Cache-Control", "no-cache");
        con.setRequestMethod("GET");

        int responseCode = con.getResponseCode();

Ожидается, что не будет генерировать исключение.Фактический результат:

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:210)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
    at sun.security.ssl.InputRecord.read(InputRecord.java:503)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:933)
    at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
...

Сценарий Python, который работает:

import urllib.request  as urllib2 
content = urllib2.urlopen('https://******************/Login').read()
print(content)

1 Ответ

0 голосов
/ 05 февраля 2019

Попробуйте HURTPSURLConnection:

String url = "https://********************/Login";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

Код в sun.net.www.http.HttpClient.parseHTTPHeader (HttpClient.java:735)

enter image description here

возможно, причиной проблемы является прокси.

...