我正在尝试通过点击Excel图标从this网站下载文件。通过右键单击图标,我得到了粘贴到我的java程序的链接:
public static void main(String[] args){
BufferedReader br;
String thisLine="";
String file="";
try {
// connect and download the file
ReadableByteChannel rbc;
file="test.xls";
URL website = new URL("http://www.anaptyxi.gov.gr/DesktopModules" +
"/AVMap.ErgaReports_v2/SearchHandler.ashx?lang=el-GR" +
"&pageMode=3&searchValue=&searchField=&dateFrom=&dateTo=" +
"&perioxesMode=2&selectedPerioxes[]=01_36_514&ergaType[]=1" +
"&ergaType[]=2&ergaType[]=3&enisx=&kad=&company=&includePollaplhs=1" +
"&export=xls");
rbc = Channels.newChannel(website.openStream());
FileOutputStream xls = new FileOutputStream(file);
xls.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
xls.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这会创建一个Excel文件,但它只包含字符串:
执行请求时出错。尝试限制您的标准。 有什么想法吗?
答案 0 :(得分:1)
该网站可能正在检查User-Agent
标题但没有回复,因为您正在使用java。
这应该解决它:
public static void main(String[] args){
BufferedReader br;
String thisLine="";
String file="";
try {
// connect and download the file
ReadableByteChannel rbc;
file="test.xls";
// connect and download the file
URL website = new URL("http://www.anaptyxi.gov.gr/DesktopModules" +
"/AVMap.ErgaReports_v2/SearchHandler.ashx?lang=el-GR" +
"&pageMode=3&searchValue=&searchField=&dateFrom=&dateTo=" +
"&perioxesMode=2&selectedPerioxes[]=01_36_514&ergaType[]=1" +
"&ergaType[]=2&ergaType[]=3&enisx=&kad=&company=&includePollaplhs=1" +
"&export=xls");
// Adding request headers to mimic the browser
URLConnection con = website.openConnection();
con.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
con.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36");
rbc = Channels.newChannel(con.getInputStream()); // !!!
FileOutputStream xls = new FileOutputStream(file);
xls.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
xls.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:0)
如果使用java 8,它应该是这样的。
<div class="col-md-3">
<img class="img-responsive" id="logo" src="img/logo.png">
</div>
答案 2 :(得分:0)
您的网址有问题。通常在发出HTTP类型请求时,您需要检查响应代码,如果不是200则发生了不好的事情。除了可能的错误响应代码之外,看起来服务也在正文中返回错误而不是预期数据,也许请求的查询将返回太多数据,因此“尝试限制标准。”
阅读使用您正在调用的服务定义的SLA,它可能会说明在任何一个调用中可以返回多少数据