2015-07-25 2 views
0

Я создаю «бот», открывая страницу со случайными прокси, полученными из файла .txt, но сначала хочу проверить, жив ли прокси-сервер или нет. используя их.Как я могу проверить, жив ли прокси-сервер или нет в JAVA

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

Я прочитал около InetSocketAddress, но у меня есть проблема, что я могу использовать его только с помощью (String Host, Int port). Как передать Host + порт вместе в простой строке?

Если это не решение, может ли кто-нибудь объяснить мне другой метод?

+0

Почему, по-вашему, вам нужно передать «host: port» как одну строку? – EJP

+0

Потому что он приходит непосредственно из файла txt, как строка с хостом и портом вместе: 657.56.348.23:8080 –

+0

И проблема в том, чтобы разделить его на два параметра? – EJP

ответ

1

Я читал о "InetSocketAddress" ...

Если вы собираетесь тестировать прокси-сервер, это один подход. (Просто проверьте, что вы можете открыть TCP/IP-соединение с прокси-сервером, а затем закрыть его). Другой способ - создать собственный крошечный веб-сервер с текстовой страницей и протестировать прокси-сервер, используя его для доступа к тестовой странице. (Это дает более точное «чтение» о живучести прокси.)

... но у меня есть проблема, что только я могу (String Host, Int port), как я могу передать Host + port в простая строка?

Это легко. Вы этого не сделаете.

Вам нужно разобрать строку и извлечь имя хоста и номер порта. (Java 101 stuff ...) Затем передайте их в качестве отдельных аргументов.

Если «строка» на самом деле является URL-адресом или URI, вы можете использовать java.net.URI для синтаксического анализа.


Однако есть и другой подход. Не проверяйте прокси. Просто используйте его, и если он не отвечает, отметьте его как плохой.

ИМО, вы в значительной степени должны принять этот подход, чтобы сделать ваш код надежным. Если вы исследуете прокси-сервер и считаете его доступным и работающим в момент времени T, нет гарантии, что он все равно будет работать в момент T + 1. Никакое тестирование не решит этого.

1

Этот подход недействителен.

Единственный жизнеспособный способ проверить, доступен ли ресурс, это попытаться использовать его в обычном ходе вашей программы и обрабатывать ошибки, если он не работает.

В противном случае вы участвуете в прогнозировании будущего. Может быть, когда вы тестируете и опускаете, когда используете. Или наоборот. Или вы можете проверить его по-другому, как вы его используете, и, следовательно, получите другой результат.