Was ist in httpclient die eleganteste/korrektste Art, Httpentity in eine Zeichenfolge zu verwandeln?

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

  •  19-09-2019
  •  | 
  •  

Frage

Ich hole eine Webseite mit der Apache Httpcomponents Java Library. Nach dem Verbinden des Ergebniss, das ich bekomme, ist ein HttpEntity das hat eine Methode getContent() was zurückgibt und InputStream und hat auch eine Methode writeTo() das schreibt an einen Ausgangsstream.

Ich möchte das Ergebnis in eine Zeichenfolge zum Extrahieren von Informationen verwandeln. Was ist der eleganteste (und sicherste) Weg, dies zu tun?

Einige mögliche Lösungen:

  • Schreiben Sie zu a ByteArrayOutputStream und wandeln Sie diese Bytes dann mit einem String -Konstruktor in eine Zeichenfolge um
  • Verwenden Sie InputStreamReader, um direkt aus dem Stream zu lesen und in einen StringBuilder zu setzen

Beide fühlen sich ein bisschen hässlich an. Würden Sie empfehlen, eines davon oder etwas anderes auszuwählen?

War es hilfreich?

Lösung

Was ist mit (Pseudo):

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

Sie müssten in diesem Fall selbst Ausnahmen selbst bewältigen.

Andere Tipps

System.out.println (Entityutils.toString (httPresponse.getEntity ()));

Es mag hässlich sein, aber ich denke, das ist der einzige Weg, es zu tun. Sie können verwenden Ioutils.tostring () von commons-io allerdings ohne Ihren eigenen Code schreiben zu müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top