我正在尝试使流程自动化.为此,我需要通过点击URL来获取XML,并在1次运行中多次运行,然后解析它.对于程序的1次运行,URL可能会被击中4至25次.在返回403错误响应之前,一切似乎都很好.
有趣的是,每次点击URL的第5或第6次,总是会出现403.
我正在使用JDOM解析XML响应.
我试过的代码:
Document doc = builder.build(new InputSource(url.openStream()));
和
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
Document doc = builder.build(conn.getInputStream());
对于第二个,我得到了异常:
org.jdom.input.JDOMParseException: Error on line 1: White spaces are required between publicId and systemId.
有人可以帮我摆脱403吗.请注意,如果需要进行更改,如提及here,我对源没有任何控制.
另外,我不确定this link是否有用.
谢谢.
[更新1]:
这可以以某种方式工作,而无需睡觉:
try{
doc = builder.build(conn.getInputStream());
}catch(IOException ioEx){
doc = builder.build(new InputSource(url.openStream()));
}