我正在为表单删除页面,然后在使用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 - 一组 键值对。返回:此连接,用于链接
有没有办法构建帖子,以便它可以接受不同数量的参数?
答案 0 :(得分:0)
经过一番挖掘后,我发现data()重载了Map,可以解决参数变化的问题。
文档here
连接数据(收集数据)添加所有 提供的数据到请求数据参数Connection data(Map data)将所有提供的数据添加到 请求数据参数连接数据(String ... keyvals)添加一个 请求数据参数的数量。