Empfang von POST-Anfragen auf dem Server (Spring Framework) von einer Android-Anwendung

8

Ich sende eine POST-Anfrage von meiner Android-Anwendung an einen Server. Der Server wird mit Spring Framework entwickelt. Die Anfrage wird vom Server empfangen, aber der von mir gesendete Parameter ist null / leer (im Protokoll angezeigt).

Der Code zum Senden der POST-Anfrage lautet:

%Vor%

Ich habe auch versucht, HttpParams wie folgt zu setzen, aber es ist auch fehlgeschlagen:

%Vor%

Der Code auf der Serverseite, der diese Anfrage erhalten hat, lautet:

%Vor%

Die Logger-Nachricht, die ich protokolliere, zeigt:

%Vor%

Irgendwelche Ideen, was mir hier fehlt?

    
rizzz86 10.10.2011, 14:18
quelle

3 Antworten

4

Ich habe den RequestParam Annotation verwendet und es funktioniert für mich. Jetzt ist der Code auf dem Server wie folgt:

%Vor%     
rizzz86 11.10.2011, 05:58
quelle
7

Vielleicht konvertiert Spring Ihren POST -Körper nicht in einen Model . Wenn das der Fall ist, wird es nicht wissen, was das Attribut json auf Ihrem Model ist, weil es kein Model !

gibt

Sehen Sie sich die Spring-Dokumentation an in Bezug auf die Zuordnung der Anfrage Körper .

Sie sollten in der Lage sein, Springs MessageConverter -Implementierungen zu verwenden, um das zu tun, was Sie wollen. Sehen Sie sich speziell FormHttpMessageConverter an, die Formulardaten in / aus MultiValueMap<String, String> konvertiert.

%Vor%

Wenn Sie diese Zeile Ihrer XML-Konfiguration hinzufügen, sollte standardmäßig FormHttpMessageConverter aktiviert sein:

%Vor%     
nicholas.hauschild 10.10.2011 15:36
quelle
2

Ich denke, Sie müssen einen Content-Type-Header vom Client hinzufügen. Der MessageConverter für JSON registriert sich selbst mit einigen Inhaltstypen, die er akzeptiert, einer davon ist application / json.

Wenn Sie mit einem Inhaltstyp senden, der von keinem MessageConvert verarbeitet wird, funktioniert es nicht.

Fügen Sie "Content-type: application / json" als Kopfzeile hinzu.

    
Andreas Wederbrand 11.10.2011 14:39
quelle

Tags und Links