How to send post parameters dynamically (or in loop) in OKHTTP 3.x in android?

intellignt_idiot picture intellignt_idiot · Jan 16, 2016 · Viewed 27.5k times · Source

I am using OKHTTP 3.x version. I want to post multiple parameters and would like to add the params in a loop. I know that in version 2.x , I can use FormEncodingBuilder and add params to it in loop and then from it create a request body. But In 3.x , the class has been removed.

Here is my current code :

RequestBody formBody = new FormBody.Builder()
            .add("Param1", value1)
            .add("Param2", value2)
            .build();
Request request = new Request.Builder()
            .url("url")
            .post(formBody)
            .build();

Now I want to add 5 params but in a loop i.e create request body by building formbody in a loop. Like I wrote above, I know how to do it in OKHTTP version 2.x but I am using version 3.x.

Any help or guidance is appreciated.

Thanks in Advance

Answer

fahrulazmi picture fahrulazmi · May 23, 2016

Here's how I do it:

FormBody.Builder formBuilder = new FormBody.Builder()
        .add("key", "123");

// dynamically add more parameter like this:
formBuilder.add("phone", "000000");

RequestBody formBody = formBuilder.build();

Request request = new Request.Builder()
                .url("https://aaa.com")
                .post(formBody)
                .build();