踩坑
- 程序中尽可能使用单例OkHttpClient,也就是多个http请求尽可能使用同一个OkHttpClient变量,屡次new OkHttpClient会致使抛出
Too Many ope files
的异常,这个异常是由于多个OkHttpClient链接了多个socket致使的,下面是一个使用OkHttpClient的示例
public static OkHttpClient okHttpClient = null;
public static OkHttpClient getOkHttpClient() {
if (okHttpClient == null) {
okHttpClient = new OkHttpClient.Builder().connectTimeout(5, TimeUnit.SECONDS).writeTimeout(5, TimeUnit.SECONDS).readTimeout(5, TimeUnit.SECONDS).build();
}
return okHttpClient;
}
// 使用的时候调用getOkHttpClient方法获取同一个OkHttpClient
getOkHttpClient().newCall(req).execute();