头
- 头分为请求头和响应头,开发者可以通过
Request
设置请求头,通过Response
拿到响应头。 - 一般情况下,Http协议中的那些请求头是不建议开发者进行设置的,Kalle会自动判断并设置,如果开发者需要更改时才建议设置。
- 一些自定义请求头的设置,可以通过全局配置,也可以为某个请求单独添加或者设置。
请求头
全局配置:
Kalle.setConfig(
KalleConfig.newBuilder()
.addHeader("name", "kalle")
.addHeader("name2", "okalle")
.build()
);
单独指定:
Kalle.get("http://www.example.com")
.addHeader("name", "kalle") // 指定header。
.setHeader("name", "okalle") // 覆盖key为name的header,值为okalle。
.perform(...);
单独指定时使用Headers
对象:
Headers headers = new Headers();
headers.add("name", "kalle");
headers.set("name", "okalle");
Kalle.get("http://www.example.com")
.setHeaders(headers)
.perform(...);
响应头
响应头一般是从Response
中获取到:
Response response = ...;
Headers headers = response.headers();
从Headers
中获取值时,Kalle已经提供了一些默认方法:
public String getCacheControl();
public String getContentDisposition();
public String getContentEncoding();
public int getContentLength();
public String getContentType();
public String getContentRange();
public long getDate();
public String getETag();
public long getExpires();
public long getLastModified();
public String getLocation();
private long getDateField(String key);
开发者也可以获取某个自定义的Key
对应的所有值:
List<String> exampleList = headers.get("example");
当然还可以获取某个自定义key
对应的第一个值(除了Cookie,一般都是一个key
一个value
):
String example = headers.getFirst("example");