2017-06-15 39 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

连接数据(类别数据)添加所有 提供的数据对所述请求数据的参数连接 数据(地图数据)将提供的所有数据到 请求数据参数连接数据(字符串...键值)添加 个请求数据参数。