Android Retrofit 请求字符串(非JSON数据)
Posted 一叶飘舟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Retrofit 请求字符串(非JSON数据)相关的知识,希望对你有一定的参考价值。
在使用Retrofit来作为网络请求库之后,笔者查阅了网上的有关教程,无外乎都是请求json数据,使用addConverterFactory(GsonConverterFactory.create())来作为转化器,如果业务需求是请求 字符串,而不是json数据格式呢,继续使用这个转换器就会产生错误。
好,来到正题,如何使用Retrofit请求一段字符串:
来到官方文档查阅:http://square.github.io/retrofit/
有如下描述:
其实官方已经提供了一个字符串的转换器,那么接下来把它导入项目使用就可以了。
添加gradle依赖
compile 'com.squareup.retrofit2:converter-scalars:2.0.0'
使用ScalarsConverterFactory转化器
public class RetrofitManager {
private Retrofit mRetrofit;
private volatile static RetrofitManager instance;
private RetrofitManager() {
mRetrofit = new Retrofit.Builder()
.baseUrl(HttpAddress.SITE)
.addConverterFactory(ScalarsConverterFactory.create())
.build();
}
public static RetrofitManager getInstance() {
if (instance == null) {
synchronized (RetrofitManager.class) {
if (instance == null) {
instance = new RetrofitManager();
}
}
}
return instance;
}
public Retrofit getRetrofit() {
if (mRetrofit == null) {
mRetrofit = RetrofitManager.getInstance().initRetrofit();
}
return mRetrofit;
}
private Retrofit initRetrofit() {
return mRetrofit;
}
}
创建请求接口
public interface MallRequest {
@Headers({
"User-Agent: android"
})
@GET("{controller}/{method}")
Call<String> getResult(
@Path("controller") String controller,
@Path("method") String method,
@Query("api_token") String api_token);
@GET("{controller}/{method}")
Call<String> getAdvertResult(
@Path("controller") String controller,
@Path("method") String method,
@Query("api_token") String api_token
);
}
请求数据
private MallRequest mMallRequest;
mMallRequest = RetrofitManager.getInstance().getRetrofit().create(MallRequest.class);
Call<String> call = mMallRequest.getAdvertResult("site", "adv-slide", LepaApiToken.getToken("site", "adv-slide"));
call.enqueue(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) {
}
});
结果:
大功告成!
感谢覃大畅的分享,原文链接:
http://blog.csdn.net/u013003052/article/details/50992436
以上是关于Android Retrofit 请求字符串(非JSON数据)的主要内容,如果未能解决你的问题,请参考以下文章
Retrofit 动态参数(非固定参数 非必须参数)(Get Post请求)