如果KEY相同,HttpPost SetEntity在httpclient v4中不起作用

时间:2015-10-08 09:03:42

标签: java

我使用的是httpclient-4.3.5。 创建方法来设置参数

List<NameValuePair>) param = new ArrayList<NameValuePair>();
public void setParameter(String key, String value) {
        param.add(new BasicNameValuePair(key, value));
        httpPost.setEntity(new UrlEncodedFormEntity(param);
}

我用键和值调用此方法,例如(key1,value1)。首先将其值设置为相应的键,再次使用相同的键调用此方法,但不同的值,例如(key1,value2)则值未设置为相应的键。当我检索值时,我得到第一个值(value1)

2 个答案:

答案 0 :(得分:0)

您正在使用param = new ArrayList<>(),因此替换无效。如果要使用列表,则必须对其进行迭代,直到找到要更改的参数的索引,然后使用param.set(index, replacement)。否则,使用Map<String, String>准备参数,然后在调用List时转换为httpPost.setEntity

答案 1 :(得分:0)

httpPost.setEntity(new UrlEncodedFormEntity(param));

在setParameter()之外调用此行,因为在设置value1后,它会立即调用httpPost.setEntity()。

如果我错误地提出问题,那么请在这里提出你的整个代码......