我在 Windows 7 上成功地使用以下代码中的 "org.apache.commons.io.FileUtils" 下载 mp3 和图像文件:
FileUtils.copyURLToFile(new URL(urlString),myFile);
但是在 mac os x Yosemite 版本 10.10.2 (14C1514) 上,我在几次下载后得到了这个异常:
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:792)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:789)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1535)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
我试过添加超时
FileUtils.copyURLToFile(new URL(url),myFile ,60000,60000);
甚至使用其他方法
URLConnection conn = new URL(url).openConnection();
InputStream is = conn.getInputStream();
OutputStream outstream = new FileOutputStream(myFile);
byte[] buffer = new byte[4096];
int len;
while ((len = is.read(buffer)) > 0) {
outstream.write(buffer, 0, len);
}
outstream.close();
更新:
我尝试禁用 WiFi(以避免@john 提到的任何连接错误)并使用有线以太网,但在几次下载后仍然出现相同的错误,感谢任何帮助。
最佳答案
这与 ISP 相关,问题已解决。
关于java - 仅 Mac 上的异常 : Unexpected end of file from server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29853775/