MalformedURLException Java从Server获取XML

时间:2016-07-07 08:56:03

标签: java xml

我有以下问题:

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作为下载。我不知道为什么会出现这个错误。有人知道如何解决这个问题吗?

1 个答案:

答案 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";