OkHttp3-設定代理和設定cookie管理
阿新 • • 發佈:2018-12-12
在實踐中,因為所有訪問介面,但介面有頻率限制,次數太多或頻率太快,介面就會返回錯誤,常見錯誤有429(請求太多),或503(服務不可用)。為解決這個問題,採用多執行緒方式,然後為每個執行緒分配代理ip。
http請求採用okhttp:
依賴:
compile group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.11.0'
//整合管理Cookie實現
compile group: 'com.squareup.okhttp3', name: 'okhttp-urlconnection', version: '3.11.0'
設定代理:
OkHttpClient.Builder builder = new OkHttpClient.Builder(); //設定連線超時時間 builder.connectTimeout(1, TimeUnit.MINUTES); //設定代理,需要替換 Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(hostName, port)); builder.proxy(proxy); //cookie管理器 CookieManager cookieManager = new CookieManager(); OkHttpClient client = builder .cookieJar(new JavaNetCookieJar(cookieManager)) .build(); Request cookieRequest = new Request.Builder() .headers(headers) .url("https://www.test.com/") .get() .build(); Response execute = client.newCall(cookieRequest).execute(); execute.close();