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 રૂપરેખાંકન દ્વારા પોતાની સેટઅપ મર્યાદા જોઈએ. નિષ્ક્રિયતા અને એકંદર સમયમર્યાદા વચ્ચે પણ ભેદ કરો: અવિરત બાઇટ્સ અથવા પુનરાવર્તિત પ્રમાણીકરણ વિનિમય કુલ સમય લંબાવી શકે છે. એપ્લિકેશનની સમર્થિત સમયમર્યાદા અથવા રદ નીતિ વાપરો સમગ્ર કામગીરી માટે એક બજેટ.