Skip to content

移除setConnKeepAliveTimeout方法 #77

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 0 additions & 26 deletions src/main/java/com/alipay/global/api/net/DefaultHttpRPC.java
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,6 @@ private static HttpRpcResult doPost(String url, String ctype, Map<String, String
String responseTime = getResponseTime(conns);
httpRpcResult.setResponseTime(responseTime);

// 设置keepAliveTimeout(一般服务端通过Keep-Alive头设置),这里一定要在解析header之后,否则会被覆盖为默认的5s或者服务端带回的Keep-Alive头的timeout值
setConnKeepAliveTimeout(conns);

int httpRespCode = conns.getResponseCode();
httpRpcResult.setRspCode(httpRespCode);
String rspBody = getResponseAsString(conns);
Expand Down Expand Up @@ -216,27 +213,4 @@ private static String getStreamAsString(InputStream stream, String charset) thro
}
}

private static void setConnKeepAliveTimeout(HttpURLConnection connection) {
if (keepAliveTimeout == 0) {
return;
}
try {

Field delegateHttpsUrlConnectionField = Class.forName("sun.net.www.protocol.https.HttpsURLConnectionImpl").getDeclaredField(
"delegate");
delegateHttpsUrlConnectionField.setAccessible(true);
Object delegateHttpsUrlConnection = delegateHttpsUrlConnectionField.get(connection);

Field httpClientField = Class.forName("sun.net.www.protocol.http.HttpURLConnection").getDeclaredField("http");
httpClientField.setAccessible(true);
Object httpClient = httpClientField.get(delegateHttpsUrlConnection);

Field keepAliveTimeoutField = Class.forName("sun.net.www.http.HttpClient").getDeclaredField("keepAliveTimeout");
keepAliveTimeoutField.setAccessible(true);
keepAliveTimeoutField.setInt(httpClient, keepAliveTimeout);
} catch (Throwable ignored) {

}
}

}