我目前正在从PHP脚本(如下所示)中读取XML文件,该文件工作正常,但我现在想添加某种形式的HTTP超时来检索XML。
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse("http://www.mywebsite.com/returnsXML");
根据我目前的方法,这可以轻松添加,还是我需要以某种方式更改请求以支持超时?
答案 0 :(得分:7)
您可以手动打开连接并为URLConnection设置超时:
URL url = new URL("http://www.mywebsite.com/returnsXML");
URLConnection con = url.openConnection();
con.setConnectTimeout(10000); // 10 seconds
Document doc = docBuilder.parse(con.getInputStream());
答案 1 :(得分:1)
其他答案似乎有一些编译问题,但在精神上是正确的。
这是一个编译的版本:
private static Document fetchDocument(String requestUrl) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
URL url = new URL(requestUrl);
URLConnection con = url.openConnection();
con.setConnectTimeout(10000);//The timeout in mills
Document doc = db.parse(con.getInputStream());
return doc;
} catch (Exception e) {
throw new RuntimeException(e);
}
}