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

标签 java android

我们如何在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);

关于java - 我们如何在 UrlEncodedFormEntity 中传递 HashMap 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10811843/

相关文章:

java - 为什么Spring MVC会以404响应并报告“在DispatcherServlet中未找到带有URI […]的HTTP请求的映射”?

android - 从 Android 客户端连接到 Google Cloud Storage 的正确方法

android - CertPathValidatorException 连接到 Android M 或更早版本上的 Let's Encrypt 主机

java - 如何每隔 n 秒更改 imageview 中的图像

android - PopupWindow 或 DialogFragment 上的卡片翻转动画

android - 如何在android中阻止安全模式

java - 使用 parseInt 更改整数值

java - 将域模式下的JBoss 7 服务器添加到Eclipse

java - 在 ListView 中显示数据库

java - Quartz Scheduler - RAM 和 JDBC 作业存储之间的区别是什么