|
11 | 11 | import me.chanjar.weixin.open.api.WxOpenConfigStorage; |
12 | 12 | import me.chanjar.weixin.open.api.WxOpenService; |
13 | 13 | import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage; |
14 | | -import me.chanjar.weixin.open.api.impl.WxOpenServiceImpl; |
| 14 | +import me.chanjar.weixin.open.api.impl.WxOpenServiceApacheHttpClientImpl; |
| 15 | +import me.chanjar.weixin.open.api.impl.WxOpenServiceHttpComponentsImpl; |
15 | 16 | import org.apache.commons.lang3.StringUtils; |
16 | 17 |
|
17 | 18 | import java.util.Collection; |
@@ -73,7 +74,13 @@ protected WxOpenMultiServices wxOpenMultiServices(WxOpenMultiProperties wxOpenMu |
73 | 74 | protected abstract WxOpenInMemoryConfigStorage wxOpenConfigStorage(WxOpenMultiProperties wxOpenMultiProperties); |
74 | 75 |
|
75 | 76 | public WxOpenService wxOpenService(WxOpenConfigStorage configStorage, WxOpenMultiProperties wxOpenMultiProperties) { |
76 | | - WxOpenService wxOpenService = new WxOpenServiceImpl(); |
| 77 | + WxOpenMultiProperties.HttpClientType httpClientType = wxOpenMultiProperties.getConfigStorage().getHttpClientType(); |
| 78 | + WxOpenService wxOpenService; |
| 79 | + if (httpClientType == WxOpenMultiProperties.HttpClientType.APACHE_HTTP) { |
| 80 | + wxOpenService = new WxOpenServiceApacheHttpClientImpl(); |
| 81 | + } else { |
| 82 | + wxOpenService = new WxOpenServiceHttpComponentsImpl(); |
| 83 | + } |
77 | 84 | wxOpenService.setWxOpenConfigStorage(configStorage); |
78 | 85 | return wxOpenService; |
79 | 86 | } |
@@ -137,17 +144,19 @@ private void configHttp(WxOpenInMemoryConfigStorage config, WxOpenMultiPropertie |
137 | 144 | config.setRetrySleepMillis(retrySleepMillis); |
138 | 145 | config.setMaxRetryTimes(maxRetryTimes); |
139 | 146 |
|
140 | | - // 设置自定义的HttpClient超时配置 |
141 | | - ApacheHttpClientBuilder clientBuilder = config.getApacheHttpClientBuilder(); |
142 | | - if (clientBuilder == null) { |
143 | | - clientBuilder = DefaultApacheHttpClientBuilder.get(); |
144 | | - } |
145 | | - if (clientBuilder instanceof DefaultApacheHttpClientBuilder) { |
146 | | - DefaultApacheHttpClientBuilder defaultBuilder = (DefaultApacheHttpClientBuilder) clientBuilder; |
147 | | - defaultBuilder.setConnectionTimeout(storage.getConnectionTimeout()); |
148 | | - defaultBuilder.setSoTimeout(storage.getSoTimeout()); |
149 | | - defaultBuilder.setConnectionRequestTimeout(storage.getConnectionRequestTimeout()); |
150 | | - config.setApacheHttpClientBuilder(defaultBuilder); |
| 147 | + // 仅在使用 Apache HttpClient 4.x 时配置 ApacheHttpClientBuilder 超时参数 |
| 148 | + if (storage.getHttpClientType() == WxOpenMultiProperties.HttpClientType.APACHE_HTTP) { |
| 149 | + ApacheHttpClientBuilder clientBuilder = config.getApacheHttpClientBuilder(); |
| 150 | + if (clientBuilder == null) { |
| 151 | + clientBuilder = DefaultApacheHttpClientBuilder.get(); |
| 152 | + } |
| 153 | + if (clientBuilder instanceof DefaultApacheHttpClientBuilder) { |
| 154 | + DefaultApacheHttpClientBuilder defaultBuilder = (DefaultApacheHttpClientBuilder) clientBuilder; |
| 155 | + defaultBuilder.setConnectionTimeout(storage.getConnectionTimeout()); |
| 156 | + defaultBuilder.setSoTimeout(storage.getSoTimeout()); |
| 157 | + defaultBuilder.setConnectionRequestTimeout(storage.getConnectionRequestTimeout()); |
| 158 | + config.setApacheHttpClientBuilder(defaultBuilder); |
| 159 | + } |
151 | 160 | } |
152 | 161 | } |
153 | 162 | } |
0 commit comments