安卓10以上 写一个http post请求
时间: 2023-07-20 08:38:47 浏览: 43
在Android 10及以上的版本中,需要在应用程序中使用网络连接时,需要通过网络安全配置文件或使用网络安全API来保护网络连接。下面是一个使用OkHttp库发送HTTP Post请求的示例代码:
首先,需要在你的应用程序模块的build.gradle文件中添加以下依赖:
```groovy
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
```
然后,在你的代码中实现以下代码:
```java
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import java.io.IOException;
public class HttpPostExample {
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
// 在主线程之外执行网络请求
public void run(String url, String json) throws IOException {
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder()
.url(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());
}
}
}
```
在这个示例中,我们使用OkHttp库来发送POST请求。首先我们定义了一个MediaType,它表示请求的内容类型。然后我们创建了一个OkHttpClient对象,它将被用于发送请求。在run()方法中,我们创建了一个RequestBody对象,它包含了我们要发送的JSON数据。接下来,我们创建了一个Request对象,将URL和RequestBody设置为POST方法,并使用我们的OkHttpClient对象来执行该请求。最后,我们检查响应是否成功,如果没有成功,则抛出一个IOException异常。如果响应成功,我们将响应体的内容打印到控制台上。
现在,我们可以在我们的应用程序中使用这个类来发送POST请求:
```java
try {
HttpPostExample example = new HttpPostExample();
String url = "http://your-url.com";
String json = "{\"name\":\"John\", \"age\":30}";
example.run(url, json);
} catch (IOException e) {
e.printStackTrace();
}
```
在这个示例中,我们创建了一个HttpPostExample对象,并将URL和JSON数据作为参数传递给run()方法。如果请求成功,服务器将返回响应数据,你可以在自己的应用程序中使用这个数据。