Betrachten Sie bitte diesen einfachen Code:Frühjahr/RestTemplate - PUT Einheit Server
final String url = String.format("%s/api/shop", Global.webserviceUrl);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpHeaders headers = new HttpHeaders();
headers.set("X-TP-DeviceID", Global.deviceID);
HttpEntity entity = new HttpEntity(headers);
HttpEntity<Shop[]> response = restTemplate.exchange(url, HttpMethod.GET, entity, Shop[].class);
shops = response.getBody();
Wie Sie sehen können, über Code soll Liste der Geschäfte von Server erhalten (im JSON-Format) und Anfahrtsplan als Reaktion auf Reihe von Shop-Objekten. Jetzt muss ich einen neuen Shop putten, zum Beispiel als/api/shop/1. Request-Entity sollte genau das gleiche Format haben wie das zurückgegebene.
Soll ich/1 zu meiner URL hinzufügen, erstellen Sie ein neues Shop-Klassenobjekt, wobei alle Felder mit meinen Werten gefüllt werden, die ich einfügen möchte, und verwenden Sie dann den Austausch mit HttpMethod.PUT?
Bitte, klar es für mich, ich bin Anfänger mit Frühling. Codebeispiel würde geschätzt werden.
[bearbeiten] Ich bin doppelt verwirrt, weil ich gerade auch Methode RestTemplate.put() bemerkt habe. Also, welchen sollte ich benutzen? Tauschen oder setzen()?
Ich nehme an, ich requestEntity statt Einheit verwenden soll als Austauschparameter? Auch, warum ID ist hasmap, meinst du mögliche mehrere URL-Parameter? – user1209216
ja, es ist für mehrere URL-Parameter. Ich denke, dass es eine überladene Version gibt, die keine Karte benötigt. Sie könnten den URL-Parameter sowie den Abfrageparameter (falls erforderlich) direkt übergeben. Die Antwort wurde mit requestEntity anstelle von entity aktualisiert. – cpd214
Große Antwort! Ich weiß, es ist ein kleines Ding, aber bitte korrigieren Sie diese Zeile: param.put ("id", "10") da dies anders ist als einfache Zitat Zeichen, habe ich nur den Code in einen Editor kopiert und es enthüllt diese Zeichen sind unterschiedlich . –