总Li 2019-06-20
compile group: 'com.squareup.retrofit', name: 'converter-gson', version: '2.0.0-beta2'
public class RestAdapter { private final String API = "http://192.168.0.102:8080/"; private Retrofit retrofit; public RestAdapter() { // Creates the json object which will manage the information received GsonBuilder builder = new GsonBuilder(); // Register an adapter to manage the date types as long values // builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { // public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { // return new Date(json.getAsJsonPrimitive().getAsLong()); // } // }); // // builder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); builder.registerTypeAdapter(Date.class, new GsonUTCDateAdapter()); Gson gson = builder.create(); this.retrofit = new Retrofit.Builder() .baseUrl(API) .addConverterFactory(GsonConverterFactory.create(gson)) .build(); } public Retrofit getRetrofit() { return retrofit; } }
public interface ApiService { @GET("article/list") Call<List<Article>> getByDate(@Query("begin")String begin, @Query("end")String end); @GET("article/tags") Call<List<String>> getTags(); @POST("article/{id}") Call<Known> update(@Path("id") String id,@Body Article article); @POST("article") Call<Void> create(@Body Article article); @DELETE("article/{id}") Call<Void> delete(@Path("id") String id); }
ApiService apiService = new RestAdapter().getRetrofit().create(ApiService.class);
之后正常调用即可。同步的话,直接execute,比如
Call<List<Article>> call = apiService.getByDate(begin,end); Response<List<Article>> resp = null; try { resp = call.execute(); } catch (IOException e) { e.printStackTrace(); return Collections.emptyList(); }