我有以下问题:
try {
String uri = "http://servername/ReportServer?%2fCool%Page&rs:Command=Render&rs:Format=XML&mandantId=2000";
URL url = new URL(uri);
URLConnection conn = url.openConnection();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(conn.getInputStream());
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer xform = tFactory.newTransformer();
xform.transform(new DOMSource(doc), new StreamResult(System.out));
} catch (Exception e) {
e.printStackTrace();
}
现在我
java.net.MalformedURLException: no protocol: servername/ReportServer?%2fCool%Page&rs:Command=Render&rs:Format=XML&mandantId=2000
我想在java中获取 xml内容。如果我在浏览器中输入网址,我会将xml作为下载。我不知道为什么会出现这个错误。有人知道如何解决这个问题吗?
答案 0 :(得分:1)
您忘记在网址中定义协议。
保证存在以下协议的协议处理程序 在搜索路径上: -
http, https, ftp, file, and jar
来自URL的Java API文档: documentation
public URL(String spec) throws MalformedURLException
从String表示创建一个URL对象。这个构造函数 等效于使用null调用双参数构造函数 第一个论点。
<强>参数:强>
- spec - 要解析为URL的字符串。
<强>抛出:强>
- MalformedURLException - 如果未指定协议,或找不到协议,或者规范为null。
你应该有类似的东西(例如HTTP):
String uri = "http://servername/ReportServer?%2fCool%Page&rs:Command=Render&rs:Format=XML&mandantId=2000";