小编Mac*_*ski的帖子

Java简单代码:java.net.SocketException:来自服务器的文件意外结束

我在Java中编写了一些简单的代码,该方法应该连接到网站并返回BufferedReader.

private BufferedReader getConnection(String url_a) {
        URL url;
        try {
            System.out.println("getting connection");
            url = new URL(url_a);
            HttpURLConnection urlConnection = (HttpURLConnection) 
                     url.openConnection();
            urlConnection.addRequestProperty("User-Agent",
                    "Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924"
                     + "Epiphany/1.4.4 (Ubuntu)");
            inStream = new InputStreamReader(urlConnection.getInputStream());
            return new BufferedReader(inStream);
        } catch (Exception ex) {
            Logger.getLogger(Reader.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;

}
Run Code Online (Sandbox Code Playgroud)

当我在我的电脑上使用它时,它工作正常,但当我把.jar文件放在服务器上时,我收到此错误:

java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:718)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:579)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:715)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:579)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1322)
at dataconverter.Reader.getConnection(Reader.java.260)
Run Code Online (Sandbox Code Playgroud)

问题很奇怪,因为每次都不抛出异常,有时候一切正常,程序运行正常.

有没有人有任何想法?

java sockets httpurlconnection

31
推荐指数
3
解决办法
13万
查看次数

标签 统计

httpurlconnection ×1

java ×1

sockets ×1