سؤال

وكيف يمكنني أن أفعل عدة الطلب بإحدى HttpURLConnection مع جافا؟

 URL url = new URL("http://my.com");
 HttpURLConnection connection = (HttpURLConnection)url.openConnection();
 HttpURLConnection.setFollowRedirects( true );
 connection.setDoOutput( true );
 connection.setRequestMethod("GET"); 

 PrintStream ps = new PrintStream( connection.getOutputStream() );
 ps.print(params);
 ps.close();
 connection.connect();
 //TODO: do next request with other url, but in same connection

وشكرا.

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

المحلول

ومن جافادوك:

<اقتباس فقرة>   

ويستخدم كل مثيل HttpURLConnection لتقديم طلب واحد.

والكائن على ما يبدو ليس المقصود أن تكون إعادة استخدامها.

وبصرف النظر عن سحق الذاكرة قليلا وعدم الكفاءة، وليس هناك مشكلة كبيرة مع فتح واحد HttpURLConnection عن كل طلب تريد القيام بها. إذا كنت تريد شبكة فعالة IO على نطاق واسع، على الرغم من أنك أفضل حالا باستخدام مكتبة متخصصة مثل <وأ href = "http://hc.apache.org/httpclient-3.x/" يختلط = "noreferrer" > أباتشي HttpClient وإصلاحه .

نصائح أخرى

وبعيدا عن الإجابة الصحيحة، وربما ما تريد في الواقع هو إعادة استخدام اتصال TCP الأساسي، ويعرف أيضا باسم "الاتصالات المستمرة"، والتي يتم دعمها بالفعل من قبل في JDK HttpURLConnection. لذلك أنت لا تحتاج إلى استخدام يبس HTTP أخرى لهذا السبب. على الرغم من أن هناك سبب آخر الشرعي، وربما الأداء (ولكن ليس بالضرورة، يعتمد على حالة الاستخدام، المكتبة).

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