retrofit请求直接返回string

来源:互联网 发布:java udp编程和 tcp 编辑:程序博客网 时间:2024/05/18 03:20
  1. 1.添加gradle依赖:  
  2.   
  3. compile com.squareup.retrofit2:converter-scalars:2.0.0'  
  4. 2.更换转换器  
  5. mRetrofit = Retrofit.Builder()  
  6.                 .baseUrl(HttpAddress.SITE)  
  7.                 .addConverterFactory(ScalarsConverterFactory.create())  
  8.                 .build();  
  9. 3.定义返回类型为string  
  10.   
  11. new Callback<String>() {  
  12.             @Override  
  13.             public void onResponse(Call<String> call, retrofit2.Response<String> response) {  
  14.                 Log.d("debug", response.body());  
  15.             }  
  16.   
  17.             @Override  
  18.             public void onFailure(Call<String> call, Throwable t) {  
  19.   
  20.             }  

  1.         }  
  2. 注意或者不加转换器但是Call<ResponseBody>类型必须是ResponseBody
  3.  Retrofit retrofit = new Retrofit.Builder()                .baseUrl(HttpMethods.BASE_URL)//                .addConverterFactory(ScalarsConverterFactory.create())                .build();        MovieService service = retrofit.create(MovieService.class);        Call<ResponseBody> call = service.getTopMovie2(0, 20);        call.enqueue(new Callback<ResponseBody>() {            @Override            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {                if (response.isSuccess()) {                    Log.i(TAG, "response.isSuccess()");                    try {                        Log.i(TAG, "onResponse: " + response.body().string());                    } catch (IOException e) {                        e.printStackTrace();                    }                }            }            @Override            public void onFailure(Call<ResponseBody> call, Throwable t) {                Log.i(TAG, "onFailure: " + t.getMessage());            }        });    }

  4. public interface MovieService {    @GET("top250")    rx.Observable<HttpResult<List<Subject>>> getTopMovie(@Query("start") int start, @Query("count") int count);    @GET("top250")    Call<ResponseBody> getTopMovie2(@Query("start") int start, @Query("count") int count);}

0 0