繁体   English   中英

我们如何在UrlEncodedFormEntity ..中传递HashMap参数?

[英]How we can pass HashMap parameter in UrlEncodedFormEntity..?

我们如何在UrlEncodedFormEntity传递HashMap参数? 或如何解决?

我认为您的意思是这样的:

HashMap<String, String> values = ....;
ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>();
for (Map.Entry<String, String> entry : values.entrySet()) {
    parameters.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters);

编辑 #2:

如果您的HashMap拥有任意值,请记住改为执行以下操作:

HashMap<String, Object> map = ....; // Your map goes here
ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>();
for (Map.Entry<String, ?> entry : map.entrySet()) {
    Object value = entry.getValue();
    if (value instanceof Collection) {
        Collection<?> values = (Collection<?>) value;
        for (Object v : values) {
            // This will add a parameter for each value in the Collection/List
            parameters.add(new BasicNameValuePair(entry.getKey(), v == null ? null : String.valueOf(v)));
        }
    } else {
        parameters.add(new BasicNameValuePair(entry.getKey(), value == null ? null : String.valueOf(value));
    }
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM