Java:从URL下载
有人能试试我的密码吗?几天前它还在工作,现在不行了。我没有修改任何东西,所以我怀疑那边的站长阻止了我。有人能帮我查一下吗?这是我学校项目的一部分
public class Cost extends TimerTask{
public void run() {
Calendar rightNow = Calendar.getInstance();
Integer hour = rightNow.get(Calendar.HOUR_OF_DAY);
if (hour==1) {
try {
URL tariff = new URL("http://www.emcsg.com/MarketData/PriceInformation?downloadRealtime=true");
ReadableByteChannel tar = Channels.newChannel(tariff.openStream());
FileOutputStream fos = new FileOutputStream("test.csv");
fos.getChannel().transferFrom(tar, 0, 1<<24);
} catch (IOException ex) {
Logger.getLogger(Cost.class.getName()).log(Level.SEVERE, null, ex);
}
}
else {
}
}
}
# 1 楼答案
首先,清理IO异常,因为这可能会掩盖问题-检查是否可以写入D:
如果由于用户代理标题而被网站阻止:
这将显示您的用户代理头:http://pgl.yoyo.org/http/browser-headers.php。然后Setting user agent of a java URLConnection的答案告诉您如何设置标题
您需要在实例化URL和打开流之间添加一个步骤:
或者你可以试着这样做:
在你打电话之前的某个时候
编辑:这对我有用。你能试着运行它并告诉我们输出结果吗:
# 2 楼答案
我检查了你的代码并运行了它我没有问题,一切正常。 你是在为代理人工作吗
在这种情况下,您必须对其进行配置: