引入:
compile 'com.google.code.gson:gson:2.8.0' compile 'com.squareup.retrofit2:retrofit:2.4.0' compile 'com.squareup.retrofit2:converter-gson:2.4.0'
因为retrofit已经包含了okhttp的库,所以就不要额外引入okhttp了
我们使用retrofit来请求:http://139.199.89.89/api/v1/books这样一个API
private void useRetrofit() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://139.199.89.89") //设置网络请求的Url地址
.addConverterFactory(GsonConverterFactory.create()) //设置数据解析器
.build();
BookService service = retrofit.create(BookService.class);
Call<BookResponse> call = service.getResult();
//3.发送请求
call.enqueue(new Callback<BookResponse>() {
@Override
public void onResponse(Call<BookResponse> call, Response<BookResponse> response) {
Log.d(TAG,"<<<<<response="+response);
}
@Override
public void onFailure(Call<BookResponse> call, Throwable t) {
}
});
}我们要写一个service,叫BookService:
package com.pic.optimize.http;
import retrofit2.Call;
import retrofit2.http.GET;
public interface BookService {
@GET("/api/v1/books")
Call<BookResponse> getResult();
}然后要写json的解析实体BookResponse:
import java.util.ArrayList;
public class BookResponse {
public ArrayList<Book> data;
public int status;
public String message;
}然后就在onResponse中就可以得到回调了
我们再写一个添加一本书的post的请求,url是http://139.199.89.89,服务端接收参数是
bookName和bookDescription:
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface BookPostService {
@POST("/api/v1/books")
@FormUrlEncoded
Call<BookResponse> getResult(@Field("bookName") String name, @Field("bookDescription") String description);
}private void useRetrofit() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://139.199.89.89") //设置网络请求的Url地址
.addConverterFactory(GsonConverterFactory.create()) //设置数据解析器
.build();
BookPostService service = retrofit.create(BookPostService.class);
Call<BookResponse> call = service.getResult(mBookNameEdit.getText().toString(),mDescriptionEdit.getText().toString());
//3.发送请求
call.enqueue(new Callback<BookResponse>() {
@Override
public void onResponse(Call<BookResponse> call, Response<BookResponse> response) {
Log.d(TAG,"<<<<<response="+response);
}
@Override
public void onFailure(Call<BookResponse> call, Throwable t) {
}
});
}點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦