Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在循环中添加post参数-OkHTTP_Android_Okhttp_Android Networking - Fatal编程技术网

Android 在循环中添加post参数-OkHTTP

Android 在循环中添加post参数-OkHTTP,android,okhttp,android-networking,Android,Okhttp,Android Networking,我正在使用OkHTTP向我的服务器发出post请求。我知道我可以构建这样的请求: RequestBody formBody = new FormEncodingBuilder() .add("param1", param1) .build(); Request request = new Request.Builder() .url(url) .post(formBody)

我正在使用OkHTTP向我的服务器发出post请求。我知道我可以构建这样的请求:

RequestBody formBody = new FormEncodingBuilder()
            .add("param1", param1)
            .build();
    Request request = new Request.Builder()
            .url(url)
            .post(formBody)
            .build();
所以我想做的是动态添加参数。例如:

RequestBody formBody = new FormEncodingBuilder()
    for (ParamsArray m : requestParams) {
        formBody.add("param1", requestParams.value);
    }
但是对于
RequestBody
没有函数
add
,我不知道是否可以将
FormEncodingBuilder
转换为
RequestBody


谢谢大家!

A
FormEncodingBuilder
在您构建它时将变成
RequestBody
。看一下文档,类似这样的东西应该会起作用

FormEncodingBuilder formBodyBuilder = new FormEncodingBuilder()
for (ParamsArray m : requestParams) {
    formBodyBuilder.add("param1", requestParams.value);
}
RequestBody body = formBodyBuilder.build()
文档可在以下位置获得: 试试这个

FormEncodingBuilder formBodyBuilder = new FormEncodingBuilder();

for (ParamsArray m : requestParams) {
    formBodyBuilder.add("param1", requestParams.value);
}
RequestBody formBody = formBodyBuilder.build();
Request request = new Request.Builder()
        .url(url)
        .post(formBody)
        .build();
自3.0.0起,以下各项:

现在已对形状和多部分实体进行建模。我们已经换了不透明的 FormEncodingBuilder具有更强大的FormBody和 FormBody.Builder组合。同样,我们将MultipartBuilder升级为 MultipartBody、MultipartBody.Part和MultipartBody.Builder


因此,对于这些版本,请替换为FormBody.Builder

而不是FormEncodingBuilder

使用


哦,好吧,下次我最好看一下文档-谢谢!
Builder paramBuilder = new FormBody.Builder();
paramBuilder.add("param1","value1");
paramBuilder.add("param2","value2");
RequestBody requestBody = paramBuilder.build();