Okhttp set header

提取响应头

典型的HTTP头 像是一个 Map :每个字段都有一个或没有值。但是一些头允许多个值,像Guava的Multimap。例如:HTTP响应里面提供的Vary响应头,就是多值的。OkHttp的api试图让这些情况都适用。
当写请求头的时候,使用header(name, value)可以设置唯一的name、value。如果已经有值,旧的将被移除,然后添加新的。使用addHeader(name, value)可以添加多值(添加,不移除已有的)。
当读取响应头时,使用header(name)返回最后出现的name、value。通常情况这也是唯一的name、value。如果没有值,那么header(name)将返回null。如果想读取字段对应的所有值,使用headers(name)会返回一个list。
为了获取所有的Header,Headers类支持按index访问。

 
  1. private final OkHttpClient client = new OkHttpClient();
  2. public void run() throws Exception {
  3. Request request = new Request.Builder()
  4. .url("https://api.github.com/repos/square/okhttp/issues")
  5. .header("User-Agent", "OkHttp Headers.
  6. .addHeader("Accept", "application/json; q=0.5")
  7. .addHeader("Accept", "application/vnd.github.v3+json")
  8. .build();
  9. Response response = client.newCall(request).execute();
  10. if (!response.isSuccessful()) throw new IOException("Unexpected code " +response);
  11. System.out.println("Server: " + response.header("Server"));
  12. System.out.println("Date: " + response.header("Date"));
  13. System.out.println("Vary: " + response.headers("Vary"));
发布了83 篇原创文章 · 获赞 3 · 访问量 3777

猜你喜欢

转载自blog.csdn.net/qq_25153847/article/details/101515433