OkHttpClient 怎么发送post请求
时间: 2023-09-25 16:09:24 浏览: 44
可以使用OkHttp的RequestBody和FormBody类来构建POST请求参数,并使用POST方式发送请求。示例代码如下:
```
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\"name\": \"test\",\n\t\"age\": 18\n}");
Request request = new Request.Builder()
.url("http://www.example.com/api")
.post(body)
.build();
Response response = client.newCall(request).execute();
```
上述代码中,首先使用MediaType类定义请求数据的类型为JSON格式,然后使用RequestBody类构建POST请求的数据体。接着使用Request.Builder类构建请求对象,并通过post方法设置请求方式为POST,并将RequestBody对象作为请求体传入。最后使用OkHttpClient类的newCall方法发送请求并获取响应。
相关问题
okhttpclient发送post请求
使用OkHttpClient发送POST请求的示例代码如下:
```
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"key\":\"value\"}");
Request request = new Request.Builder()
.url("http://www.example.com")
.post(body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
```
这段代码将发送一个POST请求,请求体为一个json字符串,并在请求头中设置了Content-Type为application/json。
如果你需要在请求中添加更多的请求参数,可以使用OkHttp的FormBody来构造请求体。
```
OkHttpClient client = new OkHttpClient();
FormBody formBody = new FormBody.Builder()
.add("param1", "value1")
.add("param2", "value2")
.build();
Request request = new Request.Builder()
.url("http://www.example.com")
.post(formBody)
.build();
Response response = client.newCall(request).execute();
```
这里使用的是 FormBody.Builder 类来构造请求体,其中 add() 方法可以添加请求参数,最后调用 build() 方法构造出 FormBody 对象。
OkHttpClient发送请求
OkHttpClient 是一个基于 Java 的 HTTP 客户端库,用于向服务器发送请求并获取响应。以下是一个使用 OkHttpClient 发送 GET 请求的示例代码:
```java
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class OkHttpDemo {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://www.example.com")
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
该示例代码中,我们首先创建了一个 OkHttpClient 对象,然后构建了一个 GET 请求并设置请求的 URL。最后,我们使用 `client.newCall(request).execute()` 方法发送请求并获取响应,使用 `response.body().string()` 方法获取响应的内容。
当然,在实际使用中,我们还可以设置更多的请求参数,例如请求头、请求体等。在发送 POST 请求时,我们需要使用 `Request.Builder().post()` 方法来设置请求体。具体使用方法可以参考 OkHttpClient 的官方文档。