Retrofit添加公共请求参数以及添加自定义的ConverterFactory
2017-05-27 16:16
656 查看
public class HttpBaseInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request oldRequest = chain.request(); // 添加新的参数 HttpUrl.Builder authorizedUrlBuilder = oldRequest.url() .newBuilder() .scheme(oldRequest.url().scheme()) .host(oldRequest.url().host()); Request.Builder builder = oldRequest.newBuilder() .method(oldRequest.method(), oldRequest.body()); authorizedUrlBuilder.addQueryParameter("salt", UserService.getInstance().getSalt()); authorizedUrlBuilder.addQueryParameter("user_id", UserService.getInstance().getUserid()); // 新的请求 Request newRequest = builder.url(authorizedUrlBuilder.build()).build(); Response response; try { response = chain.proceed(newRequest); } catch (Exception e) { throw e; } //这个是因为,如果请求下载链接的话,会导致无法获取response BufferedSource source = response.body().source(); source.request(Long.MAX_VALUE); return response; } }
以下是添加自定义处理response的ConverterFactory,处理返回的结果
public class StringConverterFactory extends Converter.Factory { public static StringConverterFactory create() { return new StringConverterFactory(); } @Override public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) { //Retrofit并不是自动去判断返回的类型,依旧是需要指定的,能处理就处理,不能处理就返回null if(type==String.class){ return new Converter<ResponseBody, String>() { @Override public String convert(ResponseBody value) throws IOException { return value.string(); } }; }else return null; } }
相关文章推荐
- Rxjava+retrofit 添加公共请求参数及请求结果封装
- Retrofit自定义Converter之StringConverterFactory
- 自定义的拦截器,封装公共参数 get请求
- Android Retrofit2 Post请求添加Json类型参数笔记
- [置顶] 策略模式(注解版)实现 retrofit 的get和post请求的公共参数(二)
- Retrofit网络请求封装公共参数GET和POST请求
- Retrofit自定义Converter,获取原始请求数据,实现自定义解析
- retrofit+okhttp+rxjava添加公共参数的记录
- Okhttp 请求添加公共参数、公共Headers 方法
- ios url 请求头添加参数及自定义cookie
- Retrofit2.0请求添加头信息,以及解析成DAO
- 自定义拦截器封装公共请求参数
- Retrofit2.0(三)如超时设置,加请求头,加公共请求参数,加拦截器等
- ajax请求添加自定义header参数
- post请求添加公共参数
- retrofit 自定义请求参数加密 和自定义响应解密 带你走出那些坑
- ios url 请求头添加参数及自定义cookie(转)
- [置顶] 策略模式实现 retrofit 的get和post请求的公共参数(一)
- Java乔晓松-Struts2中通配符、常量、自定义类型转换器以及接受请求参数处理
- Qt中运行程序添加参数 -qws 以及 其他参数的含义