OkHttpClient 怎么发送post请求
时间: 2023-09-25 13:09:24 浏览: 157
可以使用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发送post请求指定text/plain参数?
在OkHttp库中发送POST请求,并指定`text/plain`类型的参数通常涉及创建一个`RequestBody`实例,然后构建`Request`对象。以下是一个简单的示例:
```java
import okhttp3.*;
// 创建OkHttpClient实例
OkHttpClient client = new OkHttpClient();
// 指定POST URL
String url = "https://example.com/api/endpoint";
// 准备请求体,这里使用String类型的数据
String requestBody = "Hello, Plain Text!";
RequestBody formBody = RequestBody.create(MediaType.parse("text/plain; charset=utf-8"), requestBody);
// 构建POST请求
Request request = new Request.Builder()
.url(url)
.post(formBody) // 使用请求体
.build();
// 发送请求并获取响应
Response response = client.newCall(request).execute();
```
在这个例子中,我们首先指定了请求的目标URL,然后创建了一个包含`text/plain`数据的`RequestBody`。接着,我们在`Request.Builder`中设置POST方法,并添加了请求体。最后,通过`OkHttpClient`的`newCall()`方法发起请求。
阅读全文