王学岗Retrofit初探(三)——json的数据
来源:互联网 发布:mysql function 赋值 编辑:程序博客网 时间:2024/06/08 21:20
LoginGsonService 接口
package com.tz.architect.retrofit.simple5.inter;import com.tz.architect.retrofit.simple5.model.UserBean;import retrofit2.Call;import retrofit2.http.Field;import retrofit2.http.FormUrlEncoded;import retrofit2.http.POST;public interface LoginGsonService { /** *数据格式的转换 :Gson数据格式转换,需要gson夹包 *UserBean:json格式,返回model */ @FormUrlEncoded @POST("LoginServlet") public Call<UserBean> login(@Field("username") String uname, @Field("password") String password);}
SimpleRetrofitGson 类
package com.tz.architect.retrofit.simple5;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;import com.tz.architect.retrofit.simple1.SimpleSystemLogin.OnHttpResultListener;import com.tz.architect.retrofit.simple5.inter.LoginGsonService;import com.tz.architect.retrofit.simple5.model.UserBean;public class SimpleRetrofitGson { private static String URL_UPLOAD = "http://192.168.2.1:8080/Dream_Architect_Retrofit_Server/"; public static LoginGsonService buildRetrofit() { Retrofit retrofit = new Retrofit.Builder().baseUrl(URL_UPLOAD)// 这里要改成gson .addConverterFactory(GsonConverterFactory.create()).build(); // loginService实际是一个代理类 return retrofit.create(LoginGsonService.class); } public static void executeRetrofit(Call<UserBean> callLogin, final OnHttpResultListener onHttpResultListener) { try { callLogin.enqueue(new Callback<UserBean>() { @Override public void onResponse(Call<UserBean> call, Response<UserBean> response) { UserBean userBean = response.body(); if (userBean != null) { onHttpResultListener.onHttpResult(response.body() .toString()); } else { onHttpResultListener.onHttpResult("登录失败!"); } } @Override public void onFailure(Call<UserBean> call, Throwable t) { onHttpResultListener.onHttpResult("登录失败!"); } }); } catch (Exception e) { e.printStackTrace(); } } public static void loginGson(String username, String password, final OnHttpResultListener onHttpResultListener) { LoginGsonService loginService = buildRetrofit(); Call<UserBean> callLogin = loginService.login(username, password); executeRetrofit(callLogin, onHttpResultListener); }}
bean类
package com.tz.architect.retrofit.simple5.model;public class UserBean { private String name; private String pwd; private String sex; public UserBean(String name, String pwd, String sex) { super(); this.name = name; this.pwd = pwd; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "UserBean [name=" + name + ", pwd=" + pwd + ", sex=" + sex + "]"; }}
main类
package com.tz.architect.retrofit;import android.app.Activity;import android.os.Bundle;import com.tz.architect.retrofit.simple1.SimpleSystemLogin;import com.tz.architect.retrofit.simple1.SimpleSystemLogin.OnHttpResultListener;import com.tz.architect.retrofit.simple2.SimpleOkHttpLogin;import com.tz.architect.retrofit.simple3.SimpleRetrofitLogin;import com.tz.architect.retrofit.simple4.SimpleRetrofitUploadImage;import com.tz.architect.retrofit.simple5.SimpleRetrofitGson;import com.tz.architect.retrofit.simple6.SimpleRetrofitXml;import com.tz.architect.retrofit.simple7.SimpleRetrofitRxJava;import com.tz.architect.retrofit.simple8.MyRetrofitTest;import com.tz.architect.retrofit.utils.FileManager;import com.tz.architect.retrofit.utils.ToastUtil;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // simpleSystemLogin(); // simpleOkHttpLogin(); // simpleRetrofitLoginSync(); // simpleRetrofitLoginAsync(); // simpleRetrofitLoginGetAsync(); // simpleRetrofitLoginGetQueryMap(); // simpleRetrofitUploadImage(); // simpleRetrofitLoginGson(); // simpleRetrofitConvertXml(); // simpleRetrofitRxJava(); simpleMyRetrofitTest(); } private OnHttpResultListener onHttpResultListener = new OnHttpResultListener() { @Override public void onHttpResult(Object result) { if (result == null) { ToastUtil.showToast(MainActivity.this, "登录失败!"); } else { ToastUtil.showToast(MainActivity.this, result.toString()); } } }; private void simpleSystemLogin() { SimpleSystemLogin.login("Hello", "123", onHttpResultListener); } private void simpleOkHttpLogin() { SimpleOkHttpLogin.loginSync("Hello", "123", onHttpResultListener); } private void simpleRetrofitLoginSync() { SimpleRetrofitLogin.loginSync("Hello", "123", onHttpResultListener); } private void simpleRetrofitLoginAsync() { SimpleRetrofitLogin.loginAsync("Hello", "123", onHttpResultListener); } // 发送get请求 private void simpleRetrofitLoginGetAsync() { SimpleRetrofitLogin.loginGet("Hello", "123", onHttpResultListener); } private void simpleRetrofitLoginField() { SimpleRetrofitLogin .loginPostField("Hello", "123", onHttpResultListener); } private void simpleRetrofitLoginGetQueryMap() { SimpleRetrofitLogin.loginGetQueryMap("Hello", "123", onHttpResultListener); } // 上传图片 private void simpleRetrofitUploadImage() { String imagePath = FileManager.getRecordFile().getAbsolutePath() + "/paint.png"; SimpleRetrofitUploadImage.uploadImage(imagePath, onHttpResultListener); } // 上传图片 private void simpleRetrofitLoginGson() { SimpleRetrofitGson.loginGson("Hello", "123", onHttpResultListener); } private void simpleRetrofitConvertXml() { SimpleRetrofitXml.getUserList(); } private void simpleRetrofitRxJava() { SimpleRetrofitRxJava.login("Hello", "123", onHttpResultListener); } private void simpleMyRetrofitTest() { MyRetrofitTest.login("Hello", "123", onHttpResultListener); }}
阅读全文
0 0
- 王学岗Retrofit初探(三)——json的数据
- Retrofit初探——POST方式提交JSON数据
- 王学岗Retrofit初探(二)——文件的上传
- 王学岗Retrofit初探(四)——与Rxjava的使用
- 【Android】Retrofit的使用(2)-使用Retrofit提交JSON数据
- 王学岗Retrofit初探(一)——用户名和密码登录的实现
- Retrofit 解析 JSON 数据
- Retrofit初探——Header问题补充
- Retrofit初探——请求参数
- Retrofit如何提交json数据
- 使用Retrofit获取JSON数据
- Gson+retrofit解析同一位置不同类型的json数据
- Retrofit初探——同步与异步请求
- Retrofit初探
- Retrofit初探
- retrofit初探
- Java创建和解析Json数据方法(三)——json-lib包的使用
- Java创建和解析Json数据方法(三)——json-lib包的使用
- 数据通信与网络学习
- day04 C++构造函数和初始化、对象创建和销毁、类型转换构造函数、拷贝构造函数
- 杨辉三角 HDU
- 学钱帮项目
- 让Android应用程序申请获取ROOT权限
- 王学岗Retrofit初探(三)——json的数据
- day05 this指针和常函数、析构函数(Destructor) 、拷贝构造和拷贝赋值
- Spring中bean的作用域与生命周期
- WebSocket+STOMP+SockJS
- day06 静态成员、成员指针、操作符重载
- maven 生产环境、开发环境替换配置文件打包
- day07 操作符重载、类型转换操作符
- Xbox负责人谈为何不支持VR:过度关注VR很危险
- tp5面包屑