RetrofitUtils
public class RetrofitUtils {
private static RetrofitUtils retrofitUtils=null;
private final Retrofit retrofit;
public RetrofitUtils() {
OkHttpClient.Builder okHttpClient = new OkHttpClient.Builder();
okHttpClient.readTimeout(3000, TimeUnit.SECONDS);
okHttpClient.connectTimeout(3000,TimeUnit.SECONDS);
retrofit = new Retrofit.Builder()
.baseUrl(HttpApi.BaseUrl)
.client(okHttpClient.build())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
public static RetrofitUtils getInstance(){
if(null==retrofitUtils){
synchronized (RetrofitUtils.class){
if(null==retrofitUtils){
retrofitUtils=new RetrofitUtils();
}
}
}
return retrofitUtils;
}
public Api getApi(){
return retrofit.create(Api.class);
}
}
Api
public interface Api {
@POST(HttpApi.LoginUrl)
Call<LoginResponse> getCars(@Body LoginRequest loginRequest);
}
请求代码的json
{"username":"111114","password":"111111"}
请求json串的LoginRequest
public class LoginRequest {
/**
* username : 111114
* password : 111111
*/
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
获得相应的数据LoginResponse
public class LoginResponse {
/**
* session_name : SESS19d924036de5ee0312a4edc91f39e3d7
* sessid : qoEZlSBC9pHA2I1CPdMe9bHBarUq-e16LcZu8F3q95w
* token : uwurW2mOPLYIm0DYrXWtYplqPefeZYWA3_HFdNsu18g
* user : {"uid":"23"}
*/
private String session_name;
private String sessid;
private String token;
private UserBean user;
public String getSession_name() {
return session_name;
}
public void setSession_name(String session_name) {
this.session_name = session_name;
}
public String getSessid() {
return sessid;
}
public void setSessid(String sessid) {
this.sessid = sessid;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
}
public static class UserBean {
/**
* uid : 23
*/
private String uid;
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
}
}
用法
LoginRequest loginRequest = new LoginRequest()
loginRequest.setUsername("111114")
loginRequest.setPassword("111111")
Call<LoginResponse> cars = RetrofitUtils.getInstance().getApi().getCars(loginRequest)
cars.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
LoginResponse body = response.body()
Log.d(TAG, "onResponse: "+body+body.getSessid())
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
}
})