2012-08-26 37 views
0

我想用Jsoup发送复选框数据,并且遇到了一些麻烦。我认为,当选择多个复选框时,它们会作为数组发送到服务器,但可能情况并非如此?如何在Jsoup中发送复选框数据

这是我的想法是正确的:

HashMap<String, String> postData = new HashMap<String, String>(); 
postData.put("checkbox", "[box1,box2,box3]"); 

Jsoup.connect("somesite").data(postData).post(); 

这似乎并不正常工作。但是,如果我只发送一个复选框,那么我得到了预期结果,导致我相信我对复选框表单数据发送方式的理解不正确。

这工作:

postData.put("checkbox", "box2"); 

也许HashMap的是错误的类型使用。根据Jsoup documentation我可以多次调用.data(key,value),但我希望有一些比这更简洁的东西。

回答

1

如果您有多个复选框,那么大概每个复选框都有其自己的name属性。然后,您应该为每个这样的名称呼叫.data(name, value)

AFAIK没有办法将这些电话“折叠”为data为一次通话。

+0

看起来你是对的。我尝试使用Apache MultiHashMap,但它炸毁了Jsoup。不关心为什么它不喜欢它,但我会接受它是有意设计要求多个复选框值.data(键,值)。 –

0

也许你可以尝试类似以下的东西?

HashMap<String,String> paramHM=new HashMap<String,String>(); 

ArrayList<String> checkboxVal=new ArrayList<Strnig>(); 
/.. put request.getParametersValues() in this arraylist 

org.jsoup.Connection jsoupConn=Jsoup.connect(web_api).data(paramHM); 

// Multiple Call that 
for(String item:checkboxVal){ 
    jsoupConn=jsoupConn.data("checkbox",item); 
} 
相关问题