rxjava&retrofit请求直接返回string

本文详细介绍了如何在Android项目中使用Retrofit进行网络请求,包括添加依赖、配置转换器、定义返回类型等步骤,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.添加gradle依赖:  
  
compile com.squareup.retrofit2:converter-scalars:2.0.0'  
2.更换转换器  
mRetrofit = Retrofit.Builder()  
                .baseUrl(HttpAddress.SITE)  
                .addConverterFactory(ScalarsConverterFactory.create())  
                .build();  
3.定义返回类型为string  
  
new Callback<String>() {  
            @Override  
            public void onResponse(Call<String> call, retrofit2.Response<String> response) {  
                Log.d("debug", response.body());  
            }  
  
            @Override  
            public void onFailure(Call<String> call, Throwable t) {  
  
            }  
        }  
注意或者不加转换器但是Call<ResponseBody>类型必须是ResponseBody
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());
}
});

}

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);
}


举例:
Call<ResponseBody> call = ApiFactory.getInstance().getApiService().updateItems2(accessToken, "cart", cart_params);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.isSuccessful()) {
LogUtil.i("response.isSuccess()");
try {
String responseStr = response.body().string();
LogUtil.i("onResponse,onResponse=" + responseStr);
JSONObject jsonObject = new JSONObject(responseStr);
LogUtil.i("onResponse,msg=" + jsonObject.getString("msg"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
LogUtil.i("onResponse,onFailure=" + t.getMessage());
}
});
 

 

转载于:https://www.cnblogs.com/baiyi168/p/10266562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值