Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:下载文件有时会发生IOException:无效http响应_Java_Http_Url_Download - Fatal编程技术网

java:下载文件有时会发生IOException:无效http响应

java:下载文件有时会发生IOException:无效http响应,java,http,url,download,Java,Http,Url,Download,以下代码是我的程序中的函数之一: public void download(String url) throws IOException{ URL website = new URL(url); ReadableByteChannel rbc = Channels.newChannel(website.openStream()); FileOutputStream fos = new FileOutputStream("test.csv"); fos.getCha

以下代码是我的程序中的函数之一:

public void download(String url) throws IOException{
    URL website = new URL(url);
    ReadableByteChannel rbc = Channels.newChannel(website.openStream());
    FileOutputStream fos = new FileOutputStream("test.csv");
    fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
}
问题

有时它可以工作并下载文件

但有时它只是下载文件,里面什么也没有

有时也会出现例外

Exception in thread "main" java.io.IOException: Invalid Http response
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1555)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
    at java.net.URL.openStream(URL.java:1038)
    at linkproject.Link.download(Link.java:65)
    at linkproject.Link.continualDownload(Link.java:158)
    at linkproject.Link.main(Link.java:183)
“链接项目”只是我的主要项目

PS:在我的程序中,我会每5秒更改一次URL。之后,我将调用下载函数。所以有时候这会是个例外,我对此很困惑。 我的URL如下:

每次我更改sday、smonth、syear等的值时


我想弄清楚为什么会出现异常,以及如何修复它。

我想我想到了一个解决方案。 根据你们发表的所有评论,我只需捕获IOException并再次运行代码,直到没有异常为止。 此外,一旦发生IOException,我将睡眠1或2秒以避免多次并发连接

对于“内部无内容”的问题,我检查内容是否为空。然后我会再次下载它,里面有一些有用的东西


结果证明它很好用。顺便说一句,谢谢大家的评论

这可能是因为服务器没有正确响应。。。。或者是网络问题。@Thilo否。网络问题会以不同的方式表现出来。@EJP:“有时它只是下载文件,里面什么也没有”。我认为这可能是由于网络问题。(不过,这并不是一个特殊的例外,这“有时也会发生”)我明白了。根据你们的评论。我想每次下载文件时,我都会检查代码中的网络。例如,我将检查文件是否为空,并捕获异常。