行业知识
Android Retrofit添加header参数
2026-11-05 03:55:43
来源:互联网转载
前言
有些接口需要单独设置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" >使用代码的方式,则需要添加头部拦截器
需要注意的是这里是统一拦截 一般指固定的头部参数
根据业务来判断
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);
下一篇:域名设计怎么写?