【问题标题】:How to load custom XML feed with Jsoup?如何使用 Jsoup 加载自定义 XML 提要?
【发布时间】:2016-03-10 15:48:35
【问题描述】:

我有一个 Java 方法,它获取一个提要文档(通过 http)然后解析提要(不是 JSON 或 XML 类型的)。 方法是这样的:

public ArrayList<ArrayList<String>> getFeed(String type)
{
    String feed = "";
    String address = "";
    Document file;

    /**
     * FEED URLs-------\/
     */
    switch (type) {
        case "news":
            address = "https://[domain]/svc/feeds/news/6001?subtree=false&imagesize=medium-square";
            break;
        case "events":
            address = "http://[domain]/svc/feeds/events/6001?subtree=true&imagesize=medium-square&from=%5bfromDate%5d&to=%5btoDate";
    }
    try {
        HttpURLConnection connection = (HttpURLConnection) (new URL(address)).openConnection();
        //TODO: @Test
        //----------------------------\/--THIS ONE WILL CAUSE ERRORS!!
        file = (Document)connection.getContent();
        connection.disconnect();

        //OUTPUT
        feed = file.getElementsByAttribute("pre").text();
        stream = new StringReader(feed);
    } catch (Exception e) {}

    //BEGIN PARSING\\//--THEN OUTPUT//\\
    try {
        return parse();
    } catch (FeedParseException e) {}
    //de-fault
    return null;
}

它不工作;说那个对象:'文件'导致NullPointerException。 那么如何提高调试在我看来是非开源的东西的精度。

P.S.:我没有测试“事件”案例,所以不要担心那里的 GET 参数。


这是我的堆栈跟踪:

我看不出它有什么帮助......

【问题讨论】:

  • 有人吗??.................................
  • 你能粘贴一些堆栈跟踪吗?另外,我建议确认已成功建立连接。例如value.getResponseCode() 的值是多少?
  • 您实际上并没有使用 Jsoup 解析文档。尝试做类似file = Jsoup.connect(address).get(); 的事情。还要发布您的堆栈跟踪,并添加更多代码,因为您的代码对我来说有点奇怪。
  • 我试试Jsoup方法;谢谢乔纳斯!
  • 代码隐藏异常。至少记录它们或抛出 RuntimeException。您的问题可能存在。

标签: java http get jsoup document


【解决方案1】:

您可以直接将URL 对象传递给Jsoup。

代替:

HttpURLConnection connection = (HttpURLConnection) (new URL(address)).openConnection();
//TODO: @Test
//----------------------------\/--THIS ONE WILL CAUSE ERRORS!!
file = (Document)connection.getContent();
connection.disconnect();

file = Jsoup //
          .connect(address) //
          .timeout( 10 * 1000) //
          .ignoreContentType(true) //
          .get();

Jsoup 1.8.3

【讨论】:

  • @Olivier10178 能否将堆栈跟踪添加到您的帖子中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多