في HTTPClient ما هي الطريقة الأكثر أناقة / صحيحة لتحويل التقسير إلى سلسلة؟
-
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 على الرغم من عدم وجود الكود الخاص بك.
لا تنتمي إلى StackOverflow