[英]how to use jsoup on router address?
我對Jsoup庫有疑問...
我有這個小程序,可以下載,解析並獲取google.com
的HTML頁面的標題。
import java.io.File;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class HTMLParser{
public static void main(String args[]) {
// JSoup Example - Reading HTML page from URL
Document doc;
try {
doc = Jsoup.connect("http://google.com/").get();
title = doc.title();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Jsoup Can read HTML page from URL, title : "+title);
}
}
程序運行良好,但問題是:
當我嘗試從ip地址192.168.1.1
解析文件時(我將google.com
更改為192.168.1.1
,這是路由器的地址):
doc = Jsoup.connect("http://192.168.1.1/").get();
它不起作用,並向我顯示以下錯誤:
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=401, URL=http://192.168.1.1/
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:537)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:493)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:205)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:194)
at HTMLParser.main(HTMLParser.java:43)
首先,我認為問題與“用戶名和密碼”有關,因此我將地址192.168.1.1
更改為Username:Password@192.168.1.1
:
doc = Jsoup.connect("http://username:password@192.168.1.1/").get();
但它不起作用,程序將整個行作為地址讀取。
如果有人有任何想法請幫助我! 謝謝大家
與saka1029一樣,您可以通過身份驗證請求URL。 然后,使用Jsoup.parse(String)
獲取Document
對象。
或者,您只是使用Jsoup方法發送請求並獲取響應:
(我通常將javax.xml.bind.DatatypeConverter.printBase64Binary
用於Base64轉換。)
非常感謝saka1029; Griddoor。 我讀了您的建議,這對您很有幫助,
對我來說,我使用此解決方案:
URL url = new URL("http://user:pass@domain.com/url");
URLConnection urlConnection = url.openConnection();
if (url.getUserInfo() != null) {
String basicAuth = "Basic " + new String(new Base64().encode (url.getUserInfo().getBytes()));
urlConnection.setRequestProperty("Authorization", basicAuth);
}
InputStream inputStream = urlConnection.getInputStream();
並使用此方法讀取inputstream
:
StringWriter writer = new StringWriter();
IOUtils.copy(inputStream, writer);
String theString = writer.toString();
from: 讀取/轉換InputStream為字符串
然后我用Jsoup解析theString
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.