Retrofit请求数据返回String

我们一般为了方便解析数据,会在配置Retrofit时设置数据转为实体Bean

 new Retrofit.Builder()
      .addConverterFactory(GsonConverterFactory.create())// Gson转换器
      ...

但是如果我们在测试阶段,或不知道返回内容时,需要得到返回的String类型数据,该怎么做呢?

下面提供两种方法:

1.更换转换器为Scalars
//依赖
compile com.squareup.retrofit2:converter-scalars:2.0.0'  
// 配置
 new Retrofit.Builder()  
            .addConverterFactory(ScalarsConverterFactory.create())  
            ...
// 将返回类型修改为String
public interface ApiInterfacr {
    @POST(Api.GetCarBrand)
     Observable<String> getBrand();
}

 ApiInterfacr apiInterfacr = retrofit.create(ApiInterfacr.class);
    Observable<String> observable = apiInterfacr.getBrand();
             ......
            .subscribe(new Observer<String>() {
                 ......
                @Override
                public void onNext(String result) 
                
                      mResponseText.setText(result());
                }
              ......
            });
2.不用换转换器,修改Call<ResponseBody>类型必须是ResponseBody
public interface ApiInterfacr {
      @POST(Api.GetCarBrand)
      Observable<ResponseBody> getBrand();
}

 ApiInterfacr apiInterfacr = retrofit.create(ApiInterfacr.class);
    Observable<ResponseBody> observable = apiInterfacr.getBrand();
             ......
            .subscribe(new Observer<ResponseBody>() {
                 ......
                @Override
                public void onNext(ResponseBody result) {

                    try {
                        mResponseText.setText(result.string());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
              ......
            });

3.没有第三种啦

result
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容