2015-12-06 46 views
0

我正在解析一些歌词网站,并且我从头文件有错误。 URL,我给它(例如): http://www.azlyrics.com/lyrics/linkinpark/intheend.htmljava.io.IOException:连接上流的意外结束jsoup

class GetLyrics extends AsyncTask<String, Void, String> { 
protected String doInBackground(String... urls) { 
    String url = urls[0]; 
    String output; 
    output = "If you see this, some kind of error has occupied"; 
    try { 
     Document document = Jsoup.connect(url).get(); //I dont know how it works, its google 
     document.outputSettings(new Document.OutputSettings().prettyPrint(false));//makes html() preserve linebreaks and spacing 
     document.select("br").append("\\n"); 
     Elements lyrics = document.select("b + br + br + div"); //Search for lyrics <div> tag, that after <b> and 2 <br> tags 
     String s = lyrics.html().replaceAll("\\\\n", "\n"); //Google again 
     output = Jsoup.clean(s, "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false)); 
     output = output.replace("\n\n", "\n"); 
     output = output.substring(4); //Remove first enters 
    } 
    catch (HttpStatusException e) { 
     System.err.println("404 error: " + e); 
     System.err.println("Check your input data"); 
     output = "An 404 error has occurred, more info:\n" + e + "\nCheck your input data"; 
     Log.d("LyricFinder", e.toString()); 
    } 
    catch (Exception e) { 
     System.err.println("Some error: " + e); 
     output = "An uknown error has occurred\nCheck your internet connection"; 
     Log.d("LyricFinder", e.toString()); 
    } 
    return output; 
} 

protected void onPostExecute(String lyrics) { 
    lyricsOutput.setText(lyrics); 
} 

} 和日志是:

D/LyricFinder: java.io.IOException: unexpected end of stream on Connection{www.azlyrics.com:80, [email protected] hostAddress=85.17.159.246 cipherSuite=none protocol=http/1.1} (recycle count=0) 

在Eclipse控制台项目的代码工作完美(但没有这样的AsyncTask:/ )
Idk该怎么办,因为我的问题仍然没有答案

+0

嘿,那里,我复制你的代码,并在我的机器上运行它,它运行完美没有任何错误。也许这是你的网址,你有问题?你可以尝试运行你的代码http://www.azlyrics.com/lyrics/linkinpark/intheend.html这个网址? –

+0

[java.io.IOException:连接(Android,jsoup)上的流的意外结束的可能的重复](http://stackoverflow.com/questions/34073624/java-io-ioexception-unexpected-end-of-stream- on-connection-android-jsoup) –

+0

@JoelMin它的帮助...可能是... java.lang.IllegalArgumentException:格式错误的URL:azlyrics.com/lyrics/linkinpark/intheend.html – Masafi

回答

0

好的,所以在另一个论坛上我找到了解决方案:

Document document = Jsoup.connect(url) 
        .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6") 
        .referrer("http://www.google.com") 
        .get();