Wie zu Dekodieren, die mit Gzip komprimiert-request-body in Spring MVC
Ich habe einen client, der Daten sendet, die mit
CONTENT-ENCODING deflate
Habe ich code wie diesen
@RequestMapping(value = "/connect", method = RequestMethod.POST)
@ResponseBody
public Map onConnect(@RequestBody String body){}
Derzeit 'Körper' druckt das entstellte, verdichtete Daten.
Gibt es eine Möglichkeit zu machen, Spring MVC automatisch entpacken Sie es?
- Nur eine Vermutung, aber nicht die Spring-Unterstützung HTTP-Filter?
- nicht sicher, warum gibt es 5 Fragen zu Fragen, die gleiche Sache auf SO, aber hier ist eine Lösung: stackoverflow.com/a/29096025/3779853
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie nicht behandeln, es im Frühjahr. Stattdessen verwenden Sie einen filter, so dass die Daten ankommen, die im Frühjahr bereits entlüftet.
Hoffentlich diesen beiden links können Sie loslegen.
Müssen Sie schreiben Sie eigene filter zu entpacken Körper von Gzip-Anfragen.
Sine werden Sie Lesen der gesamten Eingabe-stream von der Anfrage müssen Sie zum überschreiben von Parametern parcing Methode zu.
Dies ist der filter, ich verwende in meinem code. Unterstützt nur Gzip-POST-Anfragen, aber Sie können es zu aktualisieren, verwenden andere Arten von Anfragen, wenn Sie gebraucht werden.
Hüten Sie sich auch davor, zu analysieren Parametern ich bin mit der guava-Bibliothek, Sie können greifen Sie von hier aus: http://central.maven.org/maven2/com/google/guava/guava/
}
'Content-Type' : 'application/json; charset=utf-8'
Werden soll dies durch den server behandelt, und nicht die Anwendung.
Soweit ich weiß, Tomcat unterstützt es nicht, obwohl Sie könnte wahrscheinlich schreiben ein filter.
Einen gemeinsamen Weg, dies zu behandeln ist, um Tomcat ( oder was auch immer Java-container, die Sie verwenden) hinter einem Apache-server so konfiguriert ist, dass komprimierte Antrag stellen.