في HTTPClient ما هي الطريقة الأكثر أناقة / صحيحة لتحويل التقسير إلى سلسلة؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

أنا جلب صفحة ويب باستخدام اباتشي httpcomponents مكتبة جافا. وبعد بعد توصيل النتيجة التي أحصل عليها HttpEntity التي لديها طريقة getContent() الذي يعود an. InputStream ولديه أيضا طريقة writeTo() الذي يكتب إلى الناتج.

أريد أن أدر النتيجة في سلسلة لاستخراج المعلومات. ما هي الطريقة الأكثر أناقة (آمنة) للقيام بذلك؟

بعض الحلول الممكنة:

  • اكتب إلى ByteArrayOutputStream ثم قم بتحويل تلك البايتات إلى سلسلة مع منشئ سلسلة
  • استخدم InputStreamReader لقراءة مباشرة من الدفق، ووضعها في StringBuilder

كل من هذا يشعر القبيح قليلا. هل تنصح باختيار واحد من هذه أو أي شيء آخر؟

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

المحلول

ماذا عن (pseudo):

BasicResponseHandler handler = new org.apache.http.impl.client.BasicResponseHandler ();    
String str = httpClient.execute(request, handler);

يجب عليك التعامل مع الاستثناءات الخاصة بك في هذه الحالة.

نصائح أخرى

system.out.println (Entityutils.tostring (httpresponse.getentity ()))؛

قد يكون قبيحا، لكنني أعتقد أن هذه هي الطريقة الوحيدة للقيام بذلك. يمكنك استخدام ioutils.tostring () من العموم - IO على الرغم من عدم وجود الكود الخاص بك.

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