У меня есть устройства, которые публикуют html-страницу при подключении через их IP-адрес. Например, если бы я перешел на «192.168.1.104» на своем компьютере, я бы увидел html-страницу, которую публикует устройство. Я пытаюсь очистить этот html, но получаю некоторые ошибки, в частности MalformedURLException в первой строке моего метода. Я разместил свой метод ниже. Я нашел код для получения html и подправил его под свои нужды. Спасибо
public String getSbuHtml(String ipToPoll) throws IOException, SocketTimeoutException {
URL url = new URL("http", ipToPoll, -1, "/");
URLConnection con = url.openConnection();
con.setConnectTimeout(1000);
con.setReadTimeout(1000);
Pattern p = Pattern.compile("text/html;\\s+charset=([^\\s]+)\\s*");
Matcher m = p.matcher(con.getContentType());
String charset = m.matches() ? m.group(1) : "ISO-8859-1";
BufferedReader r = new BufferedReader(
new InputStreamReader(con.getInputStream(), charset));
String line = null;
StringBuilder buf = new StringBuilder();
while ((line = r.readLine()) != null) {
buf.append(line).append(System.getProperty("line.separator"));
}
return buf.toString();
}
РЕДАКТИРОВАТЬ: приведенный выше код был изменен, чтобы отразить создание нового URL-адреса для правильной работы с ip. Однако, когда я пытаюсь получить contentType из соединения, он равен нулю.