okhttp3 post携带json
时间: 2023-11-11 19:46:48 浏览: 132
要使用 OkHttp3 发送包含 JSON 数据的 POST 请求,可以按照以下步骤操作:
1. 创建一个 `OkHttpClient` 实例。
2. 创建一个 `RequestBody` 对象,它包含 JSON 数据。
3. 创建一个 `Request` 对象,它包含请求方法(POST)、URL 和 `RequestBody` 对象。
4. 使用 `OkHttpClient` 实例创建一个 `Call` 对象。
5. 调用 `Call` 对象的 `execute()` 方法或 `enqueue()` 方法发送请求。
下面是一个示例代码:
```java
OkHttpClient client = new OkHttpClient();
// JSON 数据
String json = "{\"name\":\"John\", \"age\":30}";
// 创建 RequestBody 对象
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), json);
// 创建 Request 对象
Request request = new Request.Builder()
.url("https://www.example.com/api/user")
.post(requestBody)
.build();
// 创建 Call 对象
Call call = client.newCall(request);
// 发送请求并处理响应
Response response = call.execute();
String responseData = response.body().string();
```
在上面的代码中,我们首先创建了一个 `OkHttpClient` 实例。然后,我们创建了一个包含 JSON 数据的 `RequestBody` 对象,使用 `MediaType.parse()` 方法指定了请求数据的 MIME 类型为 `application/json`。
接下来,我们创建了一个 `Request` 对象,它包含了请求的 URL、请求方法和请求数据。注意,我们使用 `post()` 方法指定了请求方法为 POST,并将 `RequestBody` 对象传递给了该方法。
最后,我们使用 `OkHttpClient` 实例创建了一个 `Call` 对象,并调用了其 `execute()` 方法发送请求。如果请求成功,我们可以通过 `Response` 对象获取响应数据。在上面的代码中,我们使用 `string()` 方法将响应数据转换为字符串。
阅读全文