CONNECT സമയത്ത് നിലയ്ക്കുന്ന Apache HttpClient 5 പ്രോക്സിക്ക് ടൈംഔട്ട്
ടണൽ സെറ്റപ്പിനായി കണക്ഷൻ മാനേജറുടെ സോക്കറ്റ് I/O ടൈംഔട്ട്, വേറിട്ട TCP കണക്ട് ടൈംഔട്ടിനൊപ്പം സജ്ജമാക്കുക.
പ്രോക്സി TCP സ്വീകരിച്ചു, പക്ഷേ CONNECT പ്രതികരണം ഒരിക്കലും പൂർത്തിയാക്കിയില്ല. വെബ്സൈറ്റിന്റെ പ്രതികരണം ഇതുവരെ തുടങ്ങിയിട്ടില്ല; ആ പിന്നീടുള്ള പ്രതികരണത്തെ മാത്രം ലക്ഷ്യമിടുന്ന ടൈംഔട്ട് ഈ സെറ്റപ്പ് പരിധിയില്ലാതെ കാത്തിരിക്കാൻ ഇടയാക്കാം.
Apache HttpClient 5.3.1-ന്, കണക്ഷൻ മാനേജറുടെ സ്ഥിരസ്ഥിതികൾ സജ്ജമാക്കുക:
var connection = ConnectionConfig.custom()
.setConnectTimeout(Timeout.ofSeconds(5))
.setSocketTimeout(Timeout.ofSeconds(10))
.build();
var manager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connection)
.build();
var client = HttpClients.custom()
.setConnectionManager(manager)
.setProxy(new HttpHost("http", "proxy.example", 8080))
.build();Apache HttpComponents 5 ക്ലാസുകൾ org.apache.hc-ന് കീഴിൽ ഉപയോഗിക്കുക, Timeout എന്നത് core5 യൂട്ടിലിറ്റി പാക്കേജിൽ ആണ്. ക്ലയന്റ് അതിന്റെ ജോലിക്കായി സൂക്ഷിച്ച് അടയ്ക്കുക. ഒറ്റപ്പെട്ട പൊതു HTTP പരിശോധനയ്ക്ക്, HTTP പ്രോക്സി പട്ടികയിൽ നിന്നുള്ള ഒരു സ്ഥാനാർത്ഥി എൻഡ്പോയിന്റ് നൽകുന്നു; ടൈംഔട്ടുകൾ താരതമ്യം ചെയ്യുമ്പോൾ ലക്ഷ്യം സ്ഥിരമായി നിർത്തുക.
| പരിധി | പരിഹരിക്കുന്ന കാത്തിരിപ്പ് |
|---|---|
| കണക്ട് ടൈംഔട്ട് | കണക്ഷൻ സ്ഥാപിക്കൽ |
| സോക്കറ്റ് ടൈംഔട്ട് | CONNECT കൈമാറ്റം ഉൾപ്പെടെയുള്ള സ്ഥിരസ്ഥിതി I/O നിഷ്ക്രിയത |
| പൂളിൽ നിന്ന് എടുക്കൽ / ആപ്ലിക്കേഷൻ പ്രതികരണം | വേറിട്ട് കോൺഫിഗർ ചെയ്ത മറ്റ് ഘട്ടങ്ങൾ |
CONNECT-ന് ശേഷം, TLS-ന് HttpClient 5-ന്റെ TLS കോൺഫിഗറേഷനിലൂടെ സ്വന്തം സെറ്റപ്പ് പരിധി ആവശ്യമായി വന്നേക്കാം. നിഷ്ക്രിയതയും മൊത്തം സമയപരിധിയും തമ്മിലും വേർതിരിക്കുക: ഇടവിട്ടുള്ള ബൈറ്റുകളോ ആവർത്തിച്ചുള്ള പ്രാമാണീകരണ കൈമാറ്റങ്ങളോ മൊത്തം സമയം നീട്ടിയേക്കാം. ആപ്ലിക്കേഷന്റെ പിന്തുണയുള്ള സമയപരിധി അല്ലെങ്കിൽ റദ്ദാക്കൽ നയം ഉപയോഗിക്കുക മുഴുവൻ പ്രവർത്തനത്തിനും ഒരു ബജറ്റ്.