# ServletInputStream in String umwandeln



## Robson (29. Sep 2004)

Hallo 


```
ServletInputStream inputstream = request.getInputStream();
```
wie mache ich aus dem inputstream einen String ?


----------



## meez (29. Sep 2004)

So: 


```
String s ="";
BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));
for (String buffer;(buffer = in.readLine()) != null;s+=buffer + "\n");

System.out.println(s);
```

Du kannst anstatt einem String (s) auch einen StringBuffer verwenden, kommt aber auf das gleiche raus, da der Compiler ehh einen Stringbuffer daraus macht...


----------



## Bleiglanz (30. Sep 2004)

dir ist schon klar, dass es getParameter(<name>) gibt?

achte aber beim "Direkteinlesen" auf das CharacterEncoding, da gibts immer wieder Probleme


----------



## Gast (30. Sep 2004)

hi

@Bleiglanz
was meinst du mit "Direkteinlesen"? Wie sieht das dann mit dem CharacterEncoding aus? Kannst du ein Beispiel angeben?
Wie würde denn der indirekt Weg aussehen?
Danke

Grüße


----------



## Bleiglanz (1. Okt 2004)

zwei Möglichkeiten

- mit getParameter die key/values abfragen die im Inputstream als key=value klartext drinliegen

- mit getInputStream den ganzen request-body auf einen schlag lesen und selber parsen ( trennung nach key1=value1&key2=value2 mit & und = und so weiter)

- das mit dem CharacterEncoding ist nicht ganz einfach [wenn du dem Browser eine Seite in UTF-8 schickst, dann schickt er alle Formulareingaben als UTF-8 zurück, du musst also wissen, woher dein Inputstream kommt]


----------

