Ich brauche eine Anwendung zu schreiben, die von Curl, wie geschickt binäre Daten zu verarbeiten wäre in der Lage:Wie bekomme ich rohe Binärdaten von einer POST-Anfrage, die von Spring bearbeitet wurde?
curl localhost:8080/data --data-binary @ZYSF15A46K1.txt
Ich habe eine POST-Verarbeitungsverfahren wie folgt erstellt:
@RequestMapping(method = RequestMethod.POST, value = "/data")
public void acceptData(HttpEntity<byte[]> requestEntity) throws Exception {
process(requestEntity.getBody());
}
aber es scheint keine rohen Binärdaten zurückzugeben. Ich habe versucht, eine GZip-Datei zu senden, und nachdem ich durch Spring gegangen bin, ist sie jetzt länger dekomprimierbar, was mich zu der Annahme verleitet, dass ich entweder zu viele Daten oder zu wenig Daten bekomme.
Wie löse ich dieses Problem und bekomme rohe Binärdaten?
Versuchen Sie 'HttpServletDequest' als Eingabeparameter Ihres Controllers zu verwenden und lesen Sie Rohdaten von 'InputStream'. –
@GeminiKeith versuchte das auch, es gibt aus irgendeinem Grund immer ein leeres Objekt zurück. –
haben Sie jemals die Zeichencodierung eingestellt? Sie können die 'Content-Length' überprüfen, um sicherzustellen, dass Sie die richtige Anfrage erhalten. Wenn "Content-Length" gültig ist, können Sie es aus 'InputStream' mit einer bestimmten Länge lesen. Wenn nicht, überprüfen Sie bitte Ihre Anfrage. –