java - okhttp 从数组添加 post 参数

标签 java android okhttp

我尝试使用okhttp3发送带有N个参数的post请求。 我只能找到一种使用预定义参数数量的方法。

如何动态添加更多参数到 post 请求?

我想循环遍历键和值的数组列表,并将它们添加到 addFormDataPart 或任何其他等效方法。

这是当前代码:

RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("email", "your-email@email.com")
                .addFormDataPart("name", "your-name")
                .build();


        Request request = new Request.Builder()
                .url("url")
                .post(requestBody)
                .build();

最佳答案

使用 HashMap

// HashMap with Params
HashMap<String, String> params = new HashMap<>();
// dynamically add more parameters like this:
params.put( "name", "Arom" );
params.put( "key_from_list", "value_from_list" );

// Initialize Builder (not RequestBody)
FormBody.Builder builder = new FormBody.Builder();

// loop while Adding Params to Builder
for ( Map.Entry<String, String> entry : params.entrySet() ) {
    builder.add( entry.getKey(), entry.getValue() );
}

// Create RequestBody
RequestBody formBody = builder.build();

// Create Request (same)
Request request = new Request.Builder()
        .url( "url" )
        .post( formBody )
        .build();

关于java - okhttp 从数组添加 post 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56515112/

相关文章:

java - 为什么最好将哈希集转换为树集然后直接使用树集

java - 当我运行程序时,如何使 JFrame 中的圆圈随机化

Java 未报告的异常

java - 让Java线程等待值

android - 在 AudioFlinger 中捕获音频数据并保存到原始 PCM 文件

Android 使用 OKHTTP 单例进行 cookie 并行查询的正确方法

java - 从 java 进行 Json-Rpc 调用

android - Retrofit 在 OKHttp 2.0 的类路径错误上检测到不受支持的 OkHttp

java - OKHTTP newCall() 在调用 rest API 时挂起

android - ADT 22.2 新应用程序向导 : Unsupported template dependency: Upgrade your Android Eclipse plugin