1. 程式人生 > >OkHttp3-設定代理和設定cookie管理

OkHttp3-設定代理和設定cookie管理

在實踐中,因為所有訪問介面,但介面有頻率限制,次數太多或頻率太快,介面就會返回錯誤,常見錯誤有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();