java.io.IOException: unexpected end of stream on Connection (Android, jsoup)

夙愿已清 提交于 2019-12-13 01:43:20

问题


I am parsing some lyrics site, and i have error from the header.
URL, that i give to it (for example):
http://www.azlyrics.com/lyrics/linkinpark/intheend.html

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).post(); //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);
    }
}

And logs are:

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

In eclipse console project this code works perfectly (but without this asynctask :/ )
I newbie, and i'm working first with internet and jsoup.


回答1:


One thing that I can see is that you are using a POST request instead of a GET to retrieve the document.

Just change

Document document = Jsoup.connect(url).post();

to

Document document = Jsoup.connect(url).get();


来源:https://stackoverflow.com/questions/34073624/java-io-ioexception-unexpected-end-of-stream-on-connection-android-jsoup

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!