どうすればHashMap
引数を渡すことができUrlEncodedFormEntity
ますか?またはそれを解決する方法は?
5433 次
1 に答える
3
次のような意味だと思います。
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);
于 2012-05-30T07:36:45.763 に答える