Метод openConnection
Метод openConnection класса URL открывает соединение
с удаленным ресурсом и возвращает объект URLConnection.
Сам по себе метод не устанавливает фактическое сетевое соединение -
он лишь создает объект, через который в дальнейшем можно
настроить параметры запроса и получить поток для чтения данных.
Если параметр не указан, соединение создается напрямую. Первым
параметром можно передать объект Proxy, который задает
прокси-сервер для соединения.
Синтаксис
url.openConnection()
url.openConnection(proxy)
Пример
Давайте создадим объект URL и откроем соединение,
после чего выведем тип соединения и адрес ресурса:
import java.net.URL;
import java.net.URLConnection;
public class Main
{
public static void main(String[] args) throws Exception
{
URL url = new URL("https://code.mu");
URLConnection connection = url.openConnection();
System.out.println(connection.getClass().getSimpleName());
System.out.println(connection.getURL());
}
}
Результат выполнения кода:
"sun.net.www.protocol.https.HttpsURLConnectionImpl"
"https://code.mu"
Пример
Давайте откроем соединение и прочитаем первую строку ответа от сервера через поток ввода:
import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main
{
public static void main(String[] args) throws Exception
{
URL url = new URL("https://code.mu");
URLConnection connection = url.openConnection();
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream())
);
String line = reader.readLine();
System.out.println(line);
reader.close();
}
}
Результат выполнения кода:
"<!DOCTYPE html>"
Пример
Давайте настроим соединение перед чтением: установим таймаут и запретим кеширование:
import java.net.URL;
import java.net.URLConnection;
public class Main
{
public static void main(String[] args) throws Exception
{
URL url = new URL("https://code.mu");
URLConnection connection = url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setUseCaches(false);
System.out.println(connection.getConnectTimeout());
System.out.println(connection.getReadTimeout());
System.out.println(connection.getUseCaches());
}
}
Результат выполнения кода:
5000
5000
false
Смотрите также
-
класс
URL,
который представляет адрес ресурса -
метод
openStream,
который открывает поток для чтения -
метод
getProtocol,
который возвращает протокол URL -
метод
toURI,
который преобразует URL в URI