httpclient - تعيين مهلة مقبس "عالمية" ، ومهلة منفصلة لكل طلب

StackOverflow https://stackoverflow.com/questions/3003235

  •  25-09-2019
  •  | 
  •  

سؤال

مع httpclient ، أقوم بتعيين مهلة التوصيل/التوصيل الافتراضي مع ما يلي:

HttpParams params = new BasicHttpParams();

HttpConnectionParams.setSoTimeout(params, 30000);
HttpConnectionParams.setConnectionTimeout(params, 30000);

mClient = new DefaultHttpClient(connectionManager, params);

أتساءل عما إذا كان بإمكاني تجاوز هذه القيم على أساس كل طلب؟

تحرير: هل يعمل هذا؟

HttpParams params = req.getParams(); // req is an HttpRequest object
HttpConnectionParams.setSoTimeout(params, 60000);
HttpConnectionParams.setConnectionTimeout(params, 60000);

لقد جربته ، ويبدو أنه ، لكن من الصعب اختبار/إنشاء موقف تحدث فيه مهلة.

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم httpclient 4.0 يمكنك القيام بذلك:

mClient = new DefaultHttpClient(connectionManager, params) {
  protected HttpParams determineParams(HttpRequest req) {
    //Fill in your impl here
 }

نصائح أخرى

يمكنك ببساطة تعيين هذه المعلمات على كائن الطلب. لمزيد من التفاصيل راجع:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d4e391

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top