Класс Proxy
Класс Proxy из пакета java.net используется
для представления настроек прокси-сервера. Он позволяет
указать тип прокси и адрес, через который будут выполняться
сетевые подключения. Класс не предоставляет методов для
самого соединения - его задача описать прокси, который
затем передается в другие сетевые классы, например в
Socket или URLConnection. В первом параметре
конструктора мы передаем тип прокси из перечисления
Proxy.Type, во второй - объект
SocketAddress с адресом и портом прокси-сервера.
Перечисление Proxy.Type содержит три значения:
DIRECT - прямое соединение без прокси,
HTTP - прокси для HTTP-протокола и
SOCKS - прокси по протоколу SOCKS.
Синтаксис
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("host", port));
Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("host", port));
Proxy proxy = Proxy.NO_PROXY;
Пример
Давайте создадим прокси типа HTTP и выведем
его тип и адрес:
import java.net.InetSocketAddress;
import java.net.Proxy;
public class Main
{
public static void main(String[] args)
{
Proxy proxy = new Proxy(
Proxy.Type.HTTP,
new InetSocketAddress("127.0.0.1", 8080)
);
System.out.println(proxy.type());
System.out.println(proxy.address());
}
}
Результат выполнения кода:
HTTP
/127.0.0.1:8080
Пример
Давайте воспользуемся константой NO_PROXY,
которая обозначает прямое соединение без прокси:
import java.net.Proxy;
public class Main
{
public static void main(String[] args)
{
Proxy proxy = Proxy.NO_PROXY;
System.out.println(proxy.type());
System.out.println(proxy.address());
}
}
Результат выполнения кода:
DIRECT
null
Пример
Давайте создадим прокси типа SOCKS и сравним
его с другим прокси через метод equals:
import java.net.InetSocketAddress;
import java.net.Proxy;
public class Main
{
public static void main(String[] args)
{
Proxy proxy1 = new Proxy(
Proxy.Type.SOCKS,
new InetSocketAddress("127.0.0.1", 1080)
);
Proxy proxy2 = new Proxy(
Proxy.Type.SOCKS,
new InetSocketAddress("127.0.0.1", 1080)
);
boolean res = proxy1.equals(proxy2);
System.out.println(res);
}
}
Результат выполнения кода:
true
Смотрите также
-
класс
Socket,
который создает клиентский сокет -
класс
URL,
который представляет адрес ресурса -
класс
openConnection,
который открывает соединение по URL -
класс
InetAddress,
который представляет IP-адрес