我正在使用OKHTTP 3.x版本.我想发布多个参数,并希望在循环中添加参数.我知道在2.x版本中,我可以使用FormEncodingBuilder并在循环中添加params,然后从中创建一个请求体.但在3.x中,该类已被删除.
这是我目前的代码:
RequestBody formBody = new FormBody.Builder()
.add("Param1", value1)
.add("Param2", value2)
.build();
Request request = new Request.Builder()
.url("url")
.post(formBody)
.build();
Run Code Online (Sandbox Code Playgroud)
现在我想添加5个参数但是在一个循环中,即通过在循环中构建formbody来创建请求体.就像我上面写的那样,我知道如何在OKHTTP版本2.x中执行它,但我使用的是版本3.x.
任何帮助或指导表示赞赏.
提前致谢
fah*_*zmi 29
我是这样做的:
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();
Run Code Online (Sandbox Code Playgroud)
Nic*_*k B 15
进口
import okhttp3.OkHttpClient;
import okhttp3.FormBody;
import okhttp3.Request;
import okhttp3.RequestBody;
Run Code Online (Sandbox Code Playgroud)
码:
// HashMap with Params
HashMap<String, String> params = new HashMap<>();
params.put( "Param1", "A" );
params.put( "Param2", "B" );
// Initialize Builder (not RequestBody)
FormBody.Builder builder = new FormBody.Builder();
// Add 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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25148 次 |
| 最近记录: |