Bağlantı zaman aşımını httpcomponents httpclient? Olarak nasıl ayarlayabilirim? Şu dokümanı şu adreste buldum: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html Ancak bu parametrelerin nasıl ayarlandığı açık değil. Ayrıca, SO_TIMEOUT
ve CONNECTION_TIMEOUT
arasındaki farka ilişkin bir açıklama da yararlı olacaktır.Apache HttpComponents HttpClient zaman aşımı
cevap
(aga içinde). yeni bir yol gibi görünür:
yılındaRequestConfig.Builder requestBuilder = RequestConfig.custom();
requestBuilder = requestBuilder.setConnectTimeout(timeout);
requestBuilder = requestBuilder.setConnectionRequestTimeout(timeout);
HttpClientBuilder builder = HttpClientBuilder.create();
builder.setDefaultRequestConfig(requestBuilder.build());
HttpClient client = builder.build();
section 2.5'da CONNECTION_TIMEOUT parametresi nasıl ayarlanacağına dair bir örnek görürsünüz.
CONNECTION_TIMEOUT, ilk bağlantı için bekleyen süredir ve SO_TIMEOUT, bağlantı kurulduktan sonra bir paket okurken beklediğiniz zaman aşımıdır.
@jontro yanıtı doğrudur, ancak bunun nasıl yapılacağı konusunda bir kod parçacığının olması her zaman iyidir. Bu parametrelerin her biri için 10 saniyelik bir zaman aşımı ayarlayın:
Versiyon 1:
HttpClient httpclient = new DefaultHttpClient();
// this one causes a timeout if a connection is established but there is
// no response within 10 seconds
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10 * 1000);
// this one causes a timeout if no connection is established within 10 seconds
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10 * 1000);
// now do the execute:
HttpGet httpget = new HttpGet(URL);
HttpResponse response = httpclient.execute(httpget);
Versiyon 2: Ayrıca 10 saniyelik zaman aşımı için ayarlanmış Bunu yapmanın iki yolu vardır bu parametrelerin her biri: yapılandırma refactored edildi Apache HTTP Client sürümü 4.3 olarak
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 10 * 1000);
HttpConnectionParams.setSoTimeout(params, 10 * 1000);
HttpClient httpclient = new DefaultHttpClient(params);
HttpGet httpget = new HttpGet(URL);
HttpResponse response = httpclient.execute(httpget);
HttpClient sen .. tüm istek java.net.SocketInputStream.socketRead0
geçici olarak çözmek için Ben sert zaman aşımını ayarlamak 5 saniye
int timeout = 5;
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(timeout * 1000)
.setConnectionRequestTimeout(timeout * 1000)
.setSocketTimeout(timeout * 1000).build();
CloseableHttpClient client =
HttpClientBuilder.create().setDefaultRequestConfig(config).build();
HttpGet request = new HttpGet("http://localhost:8080/service"); // GET Request
response = client.execute(request);
için diyelim örneğin aşağıda kullanabilirsiniz 4.3 sürümü sorun.
private static final ScheduledExecutorService SCHEDULED_EXECUTOR = Executors.newSingleThreadScheduledExecutor()
HttpGet request = new HttpGet("http://www.example.com")
final Runnable delayedTask = new Runnable() {
@Override
public void run() {
request.abort()
}
}
SCHEDULED_EXECUTOR.schedule(delayedTask, 100000, TimeUnit.MILLISECONDS)
- 1. Apache HttpClient 4.0 Android'de soket için zaman aşımı başarısız oldu
- 2. Yükleme Zaman Aşımı Sorun Altında Apache/Perl
- 3. httpclient exception "org.apache.http.conn.ConnectionPoolTimeoutException: Zaman aşımı bağlantı için bekliyor"
- 4. mod_rewrite proxy zaman aşımı
- 5. Apache Commons HttpClient PostMethod desteği?
- 6. Java'da Apache HttpClient, instream.toString = org.apache.http.conn.EofSensorInputStream
- 7. Apache HttpClient 4.3 Android 4.4
- 8. üyelik zaman aşımı ve oturum zaman aşımı
- 9. Apache Tomcat uygulamaları için varsayılan oturum zaman aşımı
- 10. Apache HttpComponents Client ile AWS HTTP istekleri imzalama Client
- 11. HTTP sürekli bekletme zaman aşımı
- 12. java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient
- 13. HttpClient?
- 14. Faraday'da "zaman aşımı" ve "açık zaman aşımı" nedir?
- 15. Zaman aşımı ve açık zaman aşımı arasındaki fark nedir?
- 16. HttpWebRequest zaman aşımı
- 17. TestNG'de zaman aşımı testi
- 18. WebSocket Bağlantı zaman aşımı
- 19. WaitGroup.Wait() için zaman aşımı
- 20. BackgroundWorker için zaman aşımı
- 21. NSURLConnection zaman aşımı?
- 22. DatagramSocket zaman aşımı ekleme -) (
- 23. phantomJS webpage zaman aşımı
- 24. Android Ekran Zaman aşımı
- 25. RPC zaman aşımı - Cassandra
- 26. SSH Bağlantı Zaman Aşımı
- 27. zaman aşımı stringwithcontentsofurl
- 28. grpc zaman aşımı
- 29. Bağlantı Zaman Aşımı
- 30. Tomcat istek zaman aşımı
'requestBuilder.setSocketTimeout (zaman aşımı) 'nı da eklemeniz gerekir. Lütfen "zaman aşımı" nın milisaniye olduğunu unutmayın! – Stefan
"setConnectTimeout()" ve ['setConnectionRequestTimeout()'] işlevlerinin (http://stackoverflow.com/questions/20271017/connection-and-connection-request-timeout#comment30255182_20271424) aranmasının ** aynı değil olduğunu unutmayın. "CONNECTION_TIMEOUT" ve "SO_TIMEOUT" ayarlarının yapılması (sorudaki gibi). Muhtemelen setConnectTimeout() ve setSocketTimeout() 'ı istersiniz. – Jonik
Ayrıca, Builder çok daha basit bir kod için bu ifadeleri zincirleme sağlar: 'RequestConfig config = RequestConfig.custom(). SetConnectTimeout (zaman aşımı) .setSocketTimeout (zaman aşımı) .build();' – Jonik