如何使用 Jsoup 加载自定义 XML 提要?
How to load custom XML feed with Jsoup?
我有一个 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;
}
没用;说那个对象:'file' 导致了 NullPointerException
。
那么我该如何提高调试在我看来是非开源的东西的精度。
P.S.: 我没有测试 "events" 案例,所以不要担心那里的 GET 参数。
这是我的堆栈跟踪:
不过我看不出它有什么帮助...
您可以直接将 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
我有一个 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;
}
没用;说那个对象:'file' 导致了 NullPointerException
。
那么我该如何提高调试在我看来是非开源的东西的精度。
P.S.: 我没有测试 "events" 案例,所以不要担心那里的 GET 参数。
这是我的堆栈跟踪:
不过我看不出它有什么帮助...
您可以直接将 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