Android OkHttp之post请求方法
简要
项目中要使用OKHttp网络框架,在build.gradle 中的dependencies{}导入OkHttp的依赖
dependencies {
// okhttp3的依赖
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
}
在AndroidManifest.xml中添加网络请求权限
<uses-permission android:name="android.permission.INTERNET" />
说明一下,OkHttp的使用原理在这就不多说了,主要说说Okhttp中的post方法的几种使用方法,也是在项目中遇到并使用到的。说得不好的地方,请见谅。
举一个例子说明,建一个UserInfo表,请求用户添加数据接口
public class UserInfo implements Serializable {
private Integer id;
private String name;
private Integer age;
//以下是set和get方法
//......
}
方法一
public class OkHttpTool {
final static String url="http://127.0.0.1/userInfo/add";
private static void postUser(UserInfo userInfo , Callback callback){
//1.创建OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient();
//2.创建一个RequestBody,可以用add添加键值对
RequestBody requestBody = new FormBody.Builder()
.add("name", userInfo.getName())
.add("age", String.valueOf(userInfo.getAge()))
.build();
//3.创建Request对象,设置URL地址,将RequestBody作为post方法的参数传入
Request request = new Request.Builder().url(url).post(requestBody).build();
//4.创建一个call对象,参数就是Request请求对象
okHttpClient.newCall(request).enqueue(callback);
}
}
方法二
public class OkHttpTool {
final static String url="http://127.0.0.1/userInfo/add";
private static void postUser(UserInfo userInfo , Callback callback){
FormBody formBody = new FormBody.Builder()
.add("name", userInfo.getName())
.add("age", String.valueOf(userInfo.getAge()))
.build();
//1.创建OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.post(formBody)
.build();
//2.创建一个call对象,参数就是Request请求对象
okHttpClient.newCall(request).enqueue(callback);
}
}
方法三
public class OkHttpTool {
final static String url="http://127.0.0.1/userInfo/add";
private static void postUser(UserInfo userInfo , Callback callback){
MediaType JSON = MediaType.parse("");
JsonObject json=new JsonObject();
json.addProperty("name",userInfo.getName());
json.addProperty("age",userInfo.getAge());
RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
//1.创建OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient();
//2.以JOSN方式提交数据
Request request = new Request.Builder()
.url(url)
.addHeader("Content-Type","application/json;charset=UTF-8")
.post(requestBody)
.build();
//3.创建一个call对象,参数就是Request请求对象
okHttpClient.newCall(request).enqueue(callback);
}
}
总结
以上是通过post方法添加数据或者获取数据的方法,在Activity使用也是比较方便,将callback返回的数据,使用谷歌的gson处理,转成对象接收,在赋值在ui页面就好了。