以下代码是我程序中的一个功能:
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这里是: http://www.taifex.com.tw/chinese/3/7_12_8dl.asp?syear=2015&smonth=10&sday=16&eyear=2015&emonth=10&eday=16&COMMODITY_ID=TXF
每次我改变sday,smonth,syear等的值。
我想弄清楚为什么它会发生异常,我该如何解决它。
答案 0 :(得分:0)
我想我想到了解决这个问题的解决方案。 基于你们发布的所有评论,我只是捕获IOException并再次运行代码,直到没有异常。 此外,一旦碰到IOException,我将睡眠1或2秒,以避免多次并发连接。
对于"内部没有任何问题",我检查内容,如果它是null。然后我会再次下载它内部有用的东西。
原来它工作正常。顺便说一句,谢谢你们所有人'评论。