okhttp3发送post请求
时间: 2025-03-27 10:39:52 浏览: 37
### 如何使用 OkHttp3 发送 POST 请求
为了利用 OkHttp3 库发送 HTTP POST 请求,可以创建 `RequestBody` 对象来封装要发送的数据。接着,构建一个带有此请求体的 `Request` 实例,并通过 `OkHttpClient` 来发起该请求。
下面是一个简单的例子展示怎样构造并发出一个同步的 POST 请求:
```java
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class PostExample {
private static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
String post(String url, String json) throws Exception {
RequestBody body = RequestBody.create(json, JSON);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
}
```
对于异步请求,则需提供回调函数处理服务器返回的结果:
```java
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
System.out.println(response.body().string());
}
});
```
上述代码展示了如何设置请求头以及指定内容类型为 application/json[^1]。需要注意的是,在实际应用中应当根据 API 文档调整 MIME 类型和其他头部信息以匹配服务端预期。
阅读全文
相关推荐
















