okhttp3 request Parameter
时间: 2024-09-07 08:00:18 浏览: 45
OkHttp3是一个强大的HTTP客户端库,用于Android和Java应用程序。当你创建一个请求(Request)时,可以向服务器发送各种参数。其中,`RequestBody`用于表示POST、PUT等需要提交数据的HTTP请求中的参数。对于GET请求,你可以将参数附加在URL后面作为查询字符串。
以下是如何在OkHttp3中处理不同类型参数的示例:
1. **URL Query String (GET)**:
```java
Request request = new Request.Builder()
.url("http://example.com/api?param1=value1¶m2=value2")
.build();
```
2. **JSON Body (POST, PUT) with JSON.stringify**:
```java
JSONObject jsonObject = new JSONObject().put("key", "value");
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
Request request = new Request.Builder()
.url("http://example.com/api")
.post(requestBody)
.build();
```
3. **Form Data (POST, PUT) - key-value pairs**:
```java
MultipartBuilder builder = MultipartBuilder.builder();
builder.addPartFormData("param1", "value1");
builder.addPartFormData("param2", "value2");
RequestBody requestBody = builder.build();
Request request = new Request.Builder()
.url("http://example.com/api")
.post(requestBody)
.build();
```
注意,OkHttp默认不支持表单编码(URL-encoded form data),如果你需要这种格式,可以使用`RequestBody.create(MediaType.parse("application/x-www-form-urlencoded"), "param1=value1")`。
阅读全文