Недавно я начал учиться писать веб-сканер, ссылаясь на код других людей, одна часть кода связана с загрузкой страницы URL-адреса http целевого веб-сайта, поэтому он использовал модуль HttpUrlConnection, однако я не могу понять следующий код после попытки так сложно , может кто предоставьте мне фундаментальный справочный материал, чтобы я понял это, или просто объясните мне?
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("charset", encoding);
connection.setRequestMethod("GET");
connection.setConnectTimeout( 100000 );
connection.setReadTimeout( 100000 );
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)");
первый, не знаю почему соединение = (HttpURLConnection) url.openConnection () пишет так, обычно пишем Подключение HttpURLConnection = новый HttpURLConnection (), я имею в виду, что мы создаем объект таким образом;
следующий Я имею в виду, что я знаю этот синтаксис набора, все дело в настройке заголовка запроса клиента, но я просто не знаю, для чего используются эти синтаксисы набора? почему они установлены на эти значения, а не на другие значения?
Я прочитал соответствующую главу Core Java Volume 2, но он не может ответить на мой вопрос, я много искал в Google, но просто не могу найти объяснения по поводу этих синтаксисов набора, любая помощь будет оценена, спасибо ~





Метод openConnection класса URL в Java возвращает URLConnection, который можно преобразовать в HttpURLConnection заранее. Он нужен вам для установки других обязательных полей HTTP-запроса, например, для установки метода запроса (GET, PUT, POST). Это самое важное поле вашего запроса. Вы должны решить, исходя из того, что вы запрашиваете, и откуда вы запрашиваете. значения тайм-аута чтения и соединения, с которыми вы можете поиграть, обычно используются в случае, когда запрос не возвращает ответ из-за проблем с интернет-соединением на стороне сервера или на стороне клиента. Наконец, часто используемый метод setRequestProperty устанавливает заголовки для вашего запроса.
con.setRequestProperty("Content-Type", "application/json");
широко используется. Чтобы определить тип содержимого ответа, сначала вызовите getHeaderField:
String contentType = con.getHeaderField("Content-Type");
Примечание. Если ваш запрос требует дополнительных параметров, вы должны поместить их на карту и вывести в свой запрос.
спасибо @ golyadkin, это очень четкое объяснение, я также нашел это видео: youtube.com/watch?v=PUPDGbnpSjw, это помогло мне понять, как клиент и веб-сервер взаимодействуют друг с другом, и основную теорию протокола http на уровне непрофессионала, просто для кого-то еще.