學習到了一個新名詞:鏈式操作 一種編程模式
1、retrofit
public interface GitHubService {
@GET("users/{user}/repos")
Call<list<repo>> listRepos(@Path("user") String user);
}
public interface PhoneService {
@GET("/apistore/mobilenumber/mobilenumber")
Call<phoneresult> getResult(@Header("apikey") String apikey, @Query("phone") String phone);
}
使用:
//1.創(chuàng)建Retrofit對象
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())//解析方法
.baseUrl(BASE_URL)//主機地址
.build();
//2.創(chuàng)建訪問API的請求
PhoneService service = retrofit.create(PhoneService.class);
Call<phoneresult> call = service.getResult(API_KEY, phoneView.getText().toString());
//3.發(fā)送請求
call.enqueue(new Callback<phoneresult>() {
@Override
public void onResponse(Call<phoneresult> call, Response<phoneresult> response) {
//4.處理結(jié)果
if (response.isSuccess()){
PhoneResult result = response.body();
if (result != null){
PhoneResult.RetDataEntity entity = result.getRetData();
}
}
}
@Override
public void onFailure(Call<phoneresult> call, Throwable t) {
}
});
2、retrofit+RXJava
//聲明接口
@POST("/login")
Observable<Basebean> login();
//實現(xiàn)請求
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(BASE_URL)
.build();
retrofit.create(UserService.class).login()
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Basebean>() {
//可以在這里自定義返回數(shù)據(jù)的類繼承于Subscriber堕绩,統(tǒng)一處理返回的數(shù)據(jù)
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Basebean basebean) {
}
});