2016-07-22 61 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