okhttp3使用
时间: 2025-05-14 08:03:15 浏览: 18
### OkHttp3 GET 和 POST 请求的使用方法
#### 发起 GET 请求
通过 `OkHttpClient` 实现 GET 请求非常简单。下面展示了一个完整的 Java 示例代码:
```java
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class GetRequestExample {
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://example.com/api?key=value") // 替换为实际 URL[^2]
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
System.out.println(response.body().string());
}
}
}
```
上述代码展示了如何创建一个简单的 GET 请求并打印返回的结果。
---
#### 发起 JSON 参数的 POST 请求
对于需要传递 JSON 数据的情况,可以按照如下方式构建请求体并通过 POST 方法发送:
```java
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class PostJsonRequestExample {
public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
String jsonBody = "{ \"username\": \"test\", \"password\": \"1234\" }"; // 自定义JSON字符串
RequestBody body = RequestBody.create(jsonBody, JSON);
Request request = new Request.Builder()
.url("https://example.com/api/login") // 替换为目标URL
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
System.out.println(response.body().string());
}
}
}
```
此代码片段演示了如何向服务器发送带有 JSON 数据的 POST 请求,并接收响应内容。
---
#### 提交 Form 表单的 POST 请求
如果目标 API 需要以表单形式提交数据,则可以通过以下方式进行操作:
```java
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class PostFormRequestExample {
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
FormBody formBody = new FormBody.Builder()
.add("username", "test")
.add("password", "1234")
.build();
Request request = new Request.Builder()
.url("https://example.com/api/form-submit") // 替换为目标URL
.post(formBody)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
System.out.println(response.body().string());
}
}
}
```
这段代码说明了如何利用 `FormBody.Builder()` 构建键值对的形式来模拟 HTML 表单提交的过程[^1]。
---
### 总结
以上分别介绍了基于 OkHttp3 的三种常见网络请求场景:GET 请求、带 JSON 参数的 POST 请求以及表单提交类型的 POST 请求。每种情况都提供了具体的实现细节和样例代码供参考。
阅读全文
相关推荐

















