Retrofit2学习之五:自定义请求头

简介

Retrofit2 支持自定义请求消息头,使用 code>@Headers 定义。

官方文档:http://square.github.io/retrofit/

自定义Headers

创建业务请求接口

public interface Api {

    /**
     * 自定义请求头
     * @return
     */
    @GET("user/info?id=1")
    @Headers({"User-Agent: www.AppBlog.cn", "key: value"})
    Call<User> getHeaders();

}

创建一个Retrofit的实例,然后利用Retrofit实例创建接口对象和调用接口方法

public void getHeaders(View view) {
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(SERVER_ADDRESS)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    api = retrofit.create(Api.class);

    api.getHeaders().enqueue(new Callback<User>() {
        @Override
        public void onResponse(Call<User> call, Response<User> response) {
            //在UI主线程运行
            if (response.isSuccessful()) {
                Log.i(TAG, "返回成功");
            }
        }

        @Override
        public void onFailure(Call<User> call, Throwable t) {
            Log.i(TAG, "请求失败: " + t.getLocalizedMessage());
        }
    });
}

调用 getHeaders 方法,服务端接收的的请求头如下,可见识别我们自定义的请求头 User-Agent 和 key

"GET /user/info?id=1 HTTP/1.1" 200 -
Key: value
Content-Length: 
User-Agent: www.AppBlog.cn
Connection: Keep-Alive
Host: 192.168.1.8:5000
Content-Type: 
Accept-Encoding: gzip
上一篇 Retrofit2学习之四:POST请求
下一篇 Retrofit2学习之六:上传单个文件
目录
文章列表
1 ConcurrentHashMap的size操作
ConcurrentHashMap的size操作
2
Android增量更新 - Apk差分合并算法服务端设计
Android增量更新 - Apk差分合并算法服务端设计
3
docker-maven-plugin实现部署SpringBoot应用
docker-maven-plugin实现部署SpringBoot应用
4
Vue.js async与await解析
Vue.js async与await解析
5
Atlas:构建-基线发布-动态部署-远程bundle-单模块部署-发布bundle至私有Maven库
Atlas:构建-基线发布-动态部署-远程bundle-单模块部署-发布bundle至私有Maven库
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。