Reputation: 2165
I'm using OkHTTP for making a post request to my server. I know I can build a request like this:
RequestBody formBody = new FormEncodingBuilder()
.add("param1", param1)
.build();
Request request = new Request.Builder()
.url(url)
.post(formBody)
.build();
So what I want to do is to add the parameters dynamically. E.g:
RequestBody formBody = new FormEncodingBuilder()
for (ParamsArray m : requestParams) {
formBody.add("param1", requestParams.value);
}
But there's no function add
for a RequestBody
and I don't know if it is possible to convert a FormEncodingBuilder
to a RequestBody
.
Thank you!
Upvotes: 2
Views: 1360
Reputation: 505
Instead of FormEncodingBuilder
use
Builder paramBuilder = new FormBody.Builder();
paramBuilder.add("param1","value1");
paramBuilder.add("param2","value2");
RequestBody requestBody = paramBuilder.build();
Upvotes: 0
Reputation: 19824
As of 3.0.0, the FormEncodingBuilder is gone:
Form and Multipart bodies are now modeled. We've replaced the opaque FormEncodingBuilder with the more powerful FormBody and FormBody.Builder combo. Similarly we've upgraded MultipartBuilder into MultipartBody, MultipartBody.Part, and MultipartBody.Builder.
So replace with FormBody.Builder for these versions.
Upvotes: 3
Reputation: 39519
try this
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();
Upvotes: 2
Reputation: 1115
A FormEncodingBuilder
will turn into a RequestBody
when you build it. Looking at the documentation, something like this ought to work.
FormEncodingBuilder formBodyBuilder = new FormEncodingBuilder()
for (ParamsArray m : requestParams) {
formBodyBuilder.add("param1", requestParams.value);
}
RequestBody body = formBodyBuilder.build()
The documentation is available here: https://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/FormEncodingBuilder.html
Upvotes: 4