如何使用jsoup post / get发送不同数量的参数?

时间:2017-06-15 12:41:18

标签: java connection 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")中的数字对,或者我可以增加{的数量{1}}。但是如果你不知道你得到了多少参数,那些解决方案就不起作用了。

除了有不同数量的.data()调用之外,我不想被迫编写许多相同的函数...

javaDoc sais:

  

添加许多请求数据参数。多个参数可能是   立即设置,例如:.data(“name”,“jsoup”,“language”,“Java”,   “英语语言”);创建一个查询字符串,如:   ?name = jsoup& language = Java& language = English参数:keyvals - 一组   键值对。返回:此连接,用于链接

有没有办法构建帖子,以便它可以接受不同数量的参数?

1 个答案:

答案 0 :(得分:0)

经过一番挖掘后,我发现data()重载了Map,可以解决参数变化的问题。

文档here

  

连接数据(收集数据)添加所有   提供的数据到请求数据参数Connection     data(Map data)将所有提供的数据添加到   请求数据参数连接数据(String ... keyvals)添加一个   请求数据参数的数量。