2016-07-22 46 views
2

我正在用Jsoup制作Android应用程序。我的代码如下。。如何多个网络查询没有多个连接?

String URL = “http://www.example.com/queryDFSRSS.jsp?zone=“ 
String zone_1 = “001”; 
String zone_2 = “002”; 
String zone_3 = “003”; 

Document doc = Jsoup.connect(URL+zone_1).get(); 
. . . . 
doc = Jsoup.connect(URL+zone_2).get(); 
. . . . . 
doc = Jsoup.connect(URL+zone_3).get(); 
.. . . . 

需要很长时间。 (约2.4秒..我猜,每个连接0.8秒)

但是,我认为它们是相同的URL ..所以它可能有可能得到3区数据只有1个连接(略多于0.8秒的时间)。

可以吗?

+0

你有没有考虑加载/从作业队列中,而不是存储需求? –

+0

谢谢。但我不明白(对不起,我是初学者)。你能解释更多吗? [我正在制作天气应用程序。在我的应用程序中,有10个预先注册的区域。当应用程序启动时,用户选择一个区域。由于我没有自己的服务器,我想在Splash加载期间使用Jsoup从网站获取10个地区的天气数据。但是,它需要很长的时间(约5〜6秒)。 ] –

回答

0

除非创建org.jsoup.Connection的新实现,否则无法将连接池添加到Jsoup。

在引擎盖下,Jsoup使用org.jsoup.helpers.HTTPConnection作为此接口的实现。

特别是,您需要修改Response类如何处理java.net.HttpURLConnection对象。这是当前实现:

HTTPConnection.Response.execute(Connection.Request req, Response previousResponse) { 

    HttpURLConnection conn = createConnection(req); 
    ... 
    conn.connect(); 
    ... 
    conn.disconnect(); 

} 

https://github.com/jhy/jsoup/tree/master/src/main/java/org/jsoup/helper