2017-06-15 61 views
0

我正在爲表單分頁,然後在發送表單/使用jsoup之前解析/修改網頁中的輸入參數。如何使用jsoup post/get發送不同數量的參數?

我修改了參數後,我試圖發送帖子,但有一個問題。可能的參數對(名稱,值)的數量取決於表單。

普通帖子在jsoup是這樣的:

Connection.Response res = Jsoup.connect(formDTO.getUrl()) 
       .data("username", "admin", "password", "admin", "login-php-submit-button", "Login") 
       .method(getMethod(formDTO.getMethod())) 
       .execute(); 
     Document doc = res.parse(); 
     System.out.println(doc.toString()); 

.data()接受對參數(名稱,值)和多個參數,從我發現,我可以增加在數字對.data("username", "admin", "password", "admin")或我可以增加.data("name","value")的數量。但是如果你不知道你得到了多少參數,那麼這些解決方案就無法工作。

我想不會被迫寫了許多相同的功能,除了有不同數量的.data()調用...

的Javadoc賽斯:

添加了一些請求數據參數。一次設置多個參數 ,例如:.data(「name」,「jsoup」,「language」,「Java」, 「language」,「English」);創建一個查詢字符串,如: ?name = jsoup & language = Java & language = English參數:keyvals - 一組關鍵值對的集合 。返回:此連接,用於鏈接

有沒有辦法構建帖子,以便它可以接受不同數量的參數?

回答

0

經過一番挖掘我發現數據()重載與地圖,它可以解決不同數量的參數問題。

文檔here

連接數據(類別數據)添加所有 提供的數據對所述請求數據的參數連接 數據(地圖數據)將提供的所有數據到 請求數據參數連接數據(字符串...鍵值)添加 個請求數據參數。