2015-10-06 52 views
-1

最近,我試圖用jsoup來解析網頁。我有這樣的一段代碼連接到網址:jsoup異常無效url

page.url = "https://admin.xosn.com/pdf9/3876515.pdf?DB_OEM_ID=31000"; 
Connection conn = Jsoup.connect(page.url); 
Document htmlDocument = conn.get(); 
this.htmlDocument = htmlDocument; 
if(!conn.response().contentType().contains("text/html")) { 
    System.out.println("**Failure**\nRetrieved something other than HTML"); 
    return false; 
} 

,我得到了錯誤:

Exception in thread "main" java.lang.IllegalArgumentException: Must supply a valid URL 
at org.jsoup.helper.Validate.notEmpty(Validate.java:102) 
at org.jsoup.helper.HttpConnection.url(HttpConnection.java:74) 
at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:38) 
at org.jsoup.Jsoup.connect(Jsoup.java:73) 

似乎在瀏覽器中運行。我不知道爲什麼它不適用於jsoup。

+0

什麼是Validate.java檢查線路102 jsoup解析之前,驗證您的網址是什麼?或HttpConnection.java的第74行? –

+0

你的網址適合我。請[編輯]你的問題,並提供簡短但完整的例子,讓我們重現你的問題。 – Pshemo

回答

0

Jsoup是HTML解析器,它不能解析PDF,您可以通過使用HttpURLConnection的

String url4e = "https://admin.xosn.com/pdf9/3876515.pdf?DB_OEM_ID=31000"; 
URL url1 = new URL(url4e); 
HttpURLConnection conn = (HttpURLConnection) url1.openConnection(); 
conn.setRequestMethod("GET"); 
conn.connect(); 
System.out.println(conn.getContentType()); 
+0

是的,我發現了。我可以使它與'ignorecontenttype'一起工作。謝謝。 – WayneJiao