知乎專欄 | 多維度架構 | | | 微信號 netkiller-ebook | | | QQ群:128659835 請註明“讀者” |
添加Http頭
Request request = new Request.Builder() .url(url) .addHeader("CLIENT", "AD") .addHeader("USERID", "343") .build();
覆蓋 HTTP 頭
Request request = new Request.Builder() .header("Authorization", "replace this text with your token") .url(url) .build();
public class Headers { public static void main(String[] args) throws IOException { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://www.netkiller.cn") .header("User-Agent", "Apple Mac") .addHeader("Accept", "text/html") .build(); Response response = client.newCall(request).execute(); if (!response.isSuccessful()) { throw new IOException("伺服器端錯誤: " + response); } System.out.println(response.header("Server")); System.out.println(response.headers("Set-Cookie")); } }
OkHttpClient mHttpClient = new OkHttpClient.Builder().cookieJar(new CookieJar() { private final HashMap<String, List<Cookie>> cookieStore = new HashMap<>(); @Override public void saveFromResponse(HttpUrl url, List<Cookie> cookies) { cookieStore.put(url.host(), cookies); } @Override public List<Cookie> loadForRequest(HttpUrl url) { List<Cookie> cookies = cookieStore.get(url.host()); return cookies != null ? cookies : new ArrayList<Cookie>(); } }).build();
Request request = new Request.Builder() .cacheControl(new CacheControl.Builder().noCache().build()) .url(url) .build();
// 等同於 nocache Request request = new Request.Builder() .cacheControl(new CacheControl.Builder() .maxAge(0, TimeUnit.SECONDS) .build()) .url("https://www.netkiller.cn") .build(); // 設置緩存 365 天 Request request = new Request.Builder() .cacheControl(new CacheControl.Builder() .maxStale(365, TimeUnit.DAYS) .build()) .url("https://www.netkiller.cn") .build();
Request request = new Request.Builder() .cacheControl(new CacheControl.Builder() .onlyIfCached() .build()) .url("https://www.netkiller.cn/helloworld.txt") .build(); Response forceCacheResponse = client.newCall(request).execute(); if (forceCacheResponse.code() != 504) { // The resource was cached! Show it. } else { // The resource was not cached. }