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

简介

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

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

自定义Headers

创建业务请求接口

1
2
3
4
5
6
7
8
9
10
11
public interface Api {

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

}

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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

1
2
3
4
5
6
7
8
"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

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :