Android OkHttp之post请求方法
简要
项目中要使用OKHttp网络框架,在build.gradle 中的dependencies{}导入OkHttp的依赖
1 2 3 4 | dependencies { // okhttp3的依赖 implementation 'com.squareup.okhttp3:okhttp:3.10.0' } |
在AndroidManifest.xml中添加网络请求权限
1 | <uses-permission android:name="android.permission.INTERNET" /> |
说明一下,OkHttp的使用原理在这就不多说了,主要说说Okhttp中的post方法的几种使用方法,也是在项目中遇到并使用到的。说得不好的地方,请见谅。
举一个例子说明,建一个UserInfo表,请求用户添加数据接口
1 2 3 4 5 6 7 8 9 | public class UserInfo implements Serializable { private Integer id; private String name; private Integer age; //以下是set和get方法 //...... } |
方法一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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); } } |
方法二
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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); } } |
方法三
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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页面就好了。