【问题标题】:IOException - XML ParsingIOException - XML 解析
【发布时间】:2013-06-06 07:14:59
【问题描述】:

我正在尝试从以下 url 解析 xml 响应 -

http://imdbapi.org/?type=xml&q=argo

为此,我编写了以下代码 -

    try
    {
        XMLReader myReader = XMLReaderFactory.createXMLReader();
        xmlHandler handlerobj = new xmlHandler();
        myReader.setContentHandler(handlerobj);
        myReader.parse(new InputSource(new URL("http://imdbapi.org/?type=xml&q=argo").openStream()));
    }
    catch(Exception e)
    {
        System.out.println("Error");
    }       

xmlHandler 是一个扩展 DefaultHandler 的类。 我在上面的代码中得到了一个 IOException

堆栈跟踪 -

java.io.IOException: Server returned HTTP response code: 403 for URL:   http://imdbapi.org/?type=xml&q=argo
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at gui.getimdbdata(gui.java:73)
at gui.main(gui.java:64)

这段代码有什么问题?

【问题讨论】:

  • 你能发布异常的堆栈跟踪吗?
  • 添加了堆栈跟踪。
  • 服务器拒绝允许请求的操作 (response code: 403) 一切正常,服务器配置?可以通过其他方式获取xml文件吗?
  • 我有一个类似的 android 项目,它做同样的事情,解析来自同一个 URL 的 xml 响应。我也可以使用浏览器查看 xml。
  • 这个网址只接受来自浏览器的请求。您可以在这里找到解决方案:stackoverflow.com/questions/4797593/…

标签: java xml xml-parsing sax saxparser


【解决方案1】:

你必须设置 user.agent:

System.setProperty("http.agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36     (KHTML, like Gecko) Chrome/28.0.1500.29 Safari/537.36");

(如果您使用浏览器连接到 URL,这是自动完成的)

【讨论】:

    【解决方案2】:

    解决了这个问题,感谢@dijkstra!

    Web 服务只允许浏览器获取 xml 数据。

    以下是修改 -

           url = new URL(urlString);
           uc = url.openConnection();
           uc.addRequestProperty("User-Agent", 
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
    
           uc.connect();
           uc.getInputStream();
           BufferedInputStream in = new BufferedInputStream(uc.getInputStream());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-21
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      相关资源
      最近更新 更多