Как закрыть Http URL Connection, если перехвачено IOException?- Джава - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь создать скрипт, который отправляет запрос на сайт, используя разные прокси.Вот метод отправки:

public static void send(boolean usingProxyB, int numberOfRequest, String ISP, String phoneNumber, String IP, Integer Port) {

    String url = "";
    String urlParameters = "";

    String ip;
    Integer port;


    if ( (ISP.toLowerCase()).equals("something") || (ISP.toLowerCase()).equals("something") || ISP.equals("something") ) {
        url = "https://www.something.com";
        urlParameters = "paramA=x&paramB=" + phoneNumber + "&paramC=y";
    }

    byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);

    try {

        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(IP, Port));
        URL myUrl = new URL(url);

        if (usingProxyB == true) {
            conn = (HttpURLConnection) myUrl.openConnection(proxy);
        } else if (usingProxyB == false) {
            conn = (HttpURLConnection) myUrl.openConnection();
        }




        conn.setDoOutput(true);
        conn.setRequestMethod("POST");

        System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
        System.setProperty("sun.net.client.defaultReadTimeout", "5000");

        conn.setRequestProperty("User-Agent", "Java client");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        conn.getOutputStream().write(postData);

        conn.getInputStream();

        System.out.println("Success on sending SMS #" + numberOfRequest);


    } catch(MalformedURLException e) {

        System.out.println("A - Failed on sending SMS #" + numberOfRequest);

    } catch(ProtocolException e) {

        System.out.println("B - Failed on sending SMS #" + numberOfRequest);

    } catch(IOException e) {

        System.out.println("C - Failed on sending SMS #" + numberOfRequest);

    } finally {
        conn.disconnect();
    }
}

Этот код отправляет POST-запросы, используя разные прокси или используя мой собственный ip.Когда я использую список прокси, он продолжает печатать: «C - Не удалось отправить SMS # 1».Он не меняет прокси и не закрывает соединение.

Когда прокси не работает или требуется более 5 секунд для отправки запроса, я хочу закрыть соединение в том жеПри этом соединение закрывается, когда выдается «Успех при отправке SMS №n».Когда я использую свой собственный IP, поэтому я не использую список прокси, он работает правильно.Запрос успешно отправлен и продолжает отправку другого запроса.

Я не знаю, имеет ли смысл то, что я говорю, но я не очень хорошо говорю по-английски.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...