王学岗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);    }}
原创粉丝点击