Android Retrofit添加header参数
前言
有些接口需要单独设置header参数 作为标记
如何灵活 或者统一设置请求header呢
注解@Headers
顾名思义 @Headers是指多个header 放在对象里 统一管理
//获取xxx @Headers({"Content-Type: application/json", "User-Agent: test"}) @POST("xxxx") Observable getObj(@Body Map map);
拦截器 Interceptor
如果index.php/tags-602.html" class="superseo">使用代码的方式,则需要添加头部拦截器
需要注意的是这里是统一拦截 一般指固定的头部参数
根据业务来判断
OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); httpClient.addInterceptor(new Interceptor() { @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request original = chain.request(); Request request = original.newBuilder() .header("Content-Type", "application/json") .header("User-Agent", "test") .method(original.method(), original.body()) .build(); return chain.proceed(request); } } OkHttpClient client = httpClient.build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(API_BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .client(client) .build();
注解 @Header
@Header指单个header 添加单个头部 动态 可灵活配置
适用于个别接口 有要求的上传参数
下面这个认证接口 后台要求传一个加密的key 而其他接口不需要
所以用@Header 最为方便
//认证接口 @Headers({"Content-Type: application/json"}) @POST("isp/app/worker/auth") Observable auth(@Header("key") String encodeStr, @Body Map map);
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理!
部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!