/
AsyncHttpClientConfig.java
278 lines (230 loc) · 7.46 KB
/
AsyncHttpClientConfig.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
package org.asynchttpclient;
import java.util.List;
import java.util.concurrent.ThreadFactory;
import javax.net.ssl.SSLContext;
import org.asynchttpclient.channel.SSLEngineFactory;
import org.asynchttpclient.filter.IOExceptionFilter;
import org.asynchttpclient.filter.RequestFilter;
import org.asynchttpclient.filter.ResponseFilter;
import org.asynchttpclient.netty.channel.pool.ChannelPool;
import org.asynchttpclient.proxy.ProxyServer;
import org.asynchttpclient.proxy.ProxyServerSelector;
public interface AsyncHttpClientConfig {
/**
* @return the version of AHC
*/
String getAhcVersion();
/**
* Return the name of {@link AsyncHttpClient}, which is used for thread naming
* and debugging.
*
* @return the name.
*/
String getThreadPoolName();
/**
* Return the name of {@link AsyncHttpClient}, or default string if name is null or empty.
*
* @return the name.
*/
String getThreadPoolNameOrDefault();
/**
* Return the maximum number of connections an {@link AsyncHttpClient} can
* handle.
*
* @return the maximum number of connections an {@link AsyncHttpClient} can
* handle.
*/
int getMaxConnections();
/**
* Return the maximum number of connections per hosts an
* {@link AsyncHttpClient} can handle.
*
* @return the maximum number of connections per host an
* {@link AsyncHttpClient} can handle.
*/
int getMaxConnectionsPerHost();
/**
* Return the maximum time in millisecond an {@link AsyncHttpClient} can
* wait when connecting to a remote host
*
* @return the maximum time in millisecond an {@link AsyncHttpClient} can
* wait when connecting to a remote host
*/
int getConnectTimeout();
/**
* Return the maximum time, in milliseconds, a
* {@link org.asynchttpclient.ws.WebSocket} may be idle before being timed
* out.
*
* @return the maximum time, in milliseconds, a
* {@link org.asynchttpclient.ws.WebSocket} may be idle before being
* timed out.
*/
int getWebSocketTimeout();
/**
* Return the maximum time in millisecond an {@link AsyncHttpClient} can
* stay idle.
*
* @return the maximum time in millisecond an {@link AsyncHttpClient} can
* stay idle.
*/
int getReadTimeout();
/**
* Return the maximum time in millisecond an {@link AsyncHttpClient} will
* keep connection in pool.
*
* @return the maximum time in millisecond an {@link AsyncHttpClient} will
* keep connection in pool.
*/
int getPooledConnectionIdleTimeout();
/**
* Return the maximum time in millisecond an {@link AsyncHttpClient} waits
* until the response is completed.
*
* @return the maximum time in millisecond an {@link AsyncHttpClient} waits
* until the response is completed.
*/
int getRequestTimeout();
/**
* Is HTTP redirect enabled
*
* @return true if enabled.
*/
boolean isFollowRedirect();
/**
* Get the maximum number of HTTP redirect
*
* @return the maximum number of HTTP redirect
*/
int getMaxRedirects();
/**
* Is the {@link ChannelPool} support enabled.
*
* @return true if keep-alive is enabled
*/
boolean isAllowPoolingConnections();
/**
* Return the USER_AGENT header value
*
* @return the USER_AGENT header value
*/
String getUserAgent();
/**
* Is HTTP compression enforced.
*
* @return true if compression is enforced
*/
boolean isCompressionEnforced();
/**
* Return the {@link java.util.concurrent.ThreadFactory} an
* {@link AsyncHttpClient} use for handling asynchronous response.
*
* @return the {@link java.util.concurrent.ThreadFactory} an
* {@link AsyncHttpClient} use for handling asynchronous response.
* If no {@link ThreadFactory} has been explicitly provided, this
* method will return <code>null</code>
*/
ThreadFactory getThreadFactory();
/**
* An instance of {@link ProxyServer} used by an {@link AsyncHttpClient}
*
* @return instance of {@link ProxyServer}
*/
ProxyServerSelector getProxyServerSelector();
/**
* Return an instance of {@link SSLContext} used for SSL connection.
*
* @return an instance of {@link SSLContext} used for SSL connection.
*/
SSLContext getSSLContext();
/**
* Return the {@link AdvancedConfig}
*
* @return the {@link AdvancedConfig}
*/
AdvancedConfig getAdvancedConfig();
/**
* Return the current {@link Realm}
*
* @return the current {@link Realm}
*/
Realm getRealm();
/**
* Return the list of {@link RequestFilter}
*
* @return Unmodifiable list of {@link ResponseFilter}
*/
List<RequestFilter> getRequestFilters();
/**
* Return the list of {@link ResponseFilter}
*
* @return Unmodifiable list of {@link ResponseFilter}
*/
List<ResponseFilter> getResponseFilters();
/**
* Return the list of {@link java.io.IOException}
*
* @return Unmodifiable list of {@link java.io.IOException}
*/
List<IOExceptionFilter> getIOExceptionFilters();
/**
* Return the number of time the library will retry when an
* {@link java.io.IOException} is throw by the remote server
*
* @return the number of time the library will retry when an
* {@link java.io.IOException} is throw by the remote server
*/
int getMaxRequestRetry();
/**
* @return the disableUrlEncodingForBoundRequests
*/
boolean isDisableUrlEncodingForBoundRequests();
/**
* In the case of a POST/Redirect/Get scenario where the server uses a 302
* for the redirect, should AHC respond to the redirect with a GET or
* whatever the original method was. Unless configured otherwise, for a 302,
* AHC, will use a GET for this case.
*
* @return <code>true</code> if string 302 handling is to be used, otherwise
* <code>false</code>.
*/
boolean isStrict302Handling();
/**
* Return the maximum time in millisecond an {@link AsyncHttpClient} will
* keep connection in the pool, or -1 to keep connection while possible.
*
* @return the maximum time in millisecond an {@link AsyncHttpClient} will
* keep connection in the pool, or -1 to keep connection while
* possible.
*/
int getConnectionTTL();
boolean isAcceptAnyCertificate();
/**
* @return the array of enabled protocols
*/
String[] getEnabledProtocols();
/**
* @return the array of enabled cipher suites
*/
String[] getEnabledCipherSuites();
/**
* @return the size of the SSL session cache
*/
Integer getSslSessionCacheSize();
/**
* @return the SSL session timeout in seconds (optional)
*/
Integer getSslSessionTimeout();
int getHttpClientCodecMaxInitialLineLength();
int getHttpClientCodecMaxHeaderSize();
int getHttpClientCodecMaxChunkSize();
boolean isDisableZeroCopy();
long getHandshakeTimeout();
SSLEngineFactory getSslEngineFactory();
int getChunkedFileChunkSize();
int getWebSocketMaxBufferSize();
int getWebSocketMaxFrameSize();
boolean isKeepEncodingHeader();
int getShutdownQuietPeriod();
int getShutdownTimeout();
}