[英]parsing html with issues in android app
我正在嘗試使用Jsoup在Android應用程序中解析網頁的html,但此特定頁面遇到了問題: http ://techmvs.technion.ac.il/cics/wmn/wmngrad?ORD =1
這個字符串:
<!doctype html public "-//ietf//dtd html 3.0//en">:
當我嘗試在下一條代碼行中執行Jsoup連接時,它顯然不是一個出現在標題部分中:
Response r = Jsoup.connect("http://techmvs.technion.ac.il/cics/wmn/wmngrad?ORD=1").followRedirects(true).execute();
它似乎將此錯誤的標頭作為具有空名稱和空值的標頭,從而導致異常,這是堆棧:
W: java.lang.IllegalArgumentException: Header name must not be empty
W: at org.jsoup.helper.Validate.notEmpty(Validate.java:102)
W: at org.jsoup.helper.HttpConnection$Base.header(HttpConnection.java:292)
W: at org.jsoup.helper.HttpConnection$Response.processResponseHeaders(HttpConnection.java:828)
W: at org.jsoup.helper.HttpConnection$Response.setupFromConnection(HttpConnection.java:772)
W: at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:569)
W: at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540)
W: at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227)
W: at gavi_anna_netanel.com.madomes.ug_login.GradesParser$GradesFetcher.getGradesList(GradesParser.java:48)
W: at gavi_anna_netanel.com.madomes.ug_login.GradesParser$GradesFetcher.doInBackground(GradesParser.java:32)
W: at gavi_anna_netanel.com.madomes.ug_login.GradesParser$GradesFetcher.doInBackground(GradesParser.java:28)
W: at android.os.AsyncTask$2.call(AsyncTask.java:287)
W: at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
W: at java.util.concurrent.FutureTask.run(FutureTask.java:137)
W: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
W: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
W: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
W: at java.lang.Thread.run(Thread.java:856)
重要的是要說它確實是一個JAVA項目(盡管壞的標頭也出現在html中)。
有沒有辦法告訴Jsoup忽略錯誤的標頭並仍然連接到url? 如果不是,是否有其他客戶端不會因為此錯誤的標頭而在android上失敗?
謝謝
您是否嘗試過使用XML解析器代替HTML解析器,而使用parseBodyFragment()
代替parse()
?
Document doc = Jsoup.parseBodyFragment(html, "", Parser.xmlParser());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.