2012-08-30 13 views
7

Ho una rest api url e ho inviato la stessa richiesta POST con body (nome utente, password, altri parametri) tramite Rest Client (restclient-ui-2.4-jar-with-dependencies) e ha funzionato bene senza problemi .Hai bisogno di aiuto su RestTemplate Post Request with Body Parameters?

Es:

URL: https://test.com/cgi-bin/testing/api Corpo: username = testuser & password = pass123 & id = 13002 & name = Raju

Lo stesso non funziona bene quando ho usato Primavera RestTemplate postForObject (url, varmap, Employee.class).

Qualcuno può aiutarmi con un semplice esempio in cui la richiesta è un URL, con i parametri del corpo e la risposta è XML che viene mappato con una classe?

codice di esempio:

MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>(); 
    map.add("username", "test"); 
    map.add("password", "test123"); 
    map.add("id", "1234"); 
    MarshallingHttpMessageConverter mc = new MarshallingHttpMessageConverter(); 
    mc.setMarshaller(new Jaxb2Marshaller()); 
    mc.setUnmarshaller(new Jaxb2Marshaller()); 
    list.add(marshallingHttpMessageConverter); 
    emediateRestTemplate.setMessageConverters(list); 
    Employee employee = (Employee) restTemplate.postForObject(url, map, Employee.class); 

Grazie in anticipo, Kathir

+0

Puoi mostrare il tuo codice che non funziona? –

+0

restTemplate.postForObject (url, parametersMap, Employee.class); . Potresti anche farmi sapere le differenze tra postForObject vs postForExchange? – Kathir

+0

È necessario aggiornare la domanda con il codice, non aggiungerlo nei commenti. Inoltre, si prega di mostrare più di una singola riga di codice, mostrare anche la configurazione pertinente. Infine, c'è una vasta documentazione sul sito di Spring su cosa fa ogni metodo. Forse prima vuoi dare un'occhiata a questo. –

risposta

13

I convertitori di cui sopra Es: "MarshallingHttpMessageConverter" non sono richieste.

MultiValueMap<String, String> parametersMap = new LinkedMultiValueMap<String, String>(); 
parametersMap.add("username", "test"); 
parametersMap.add("password", "test123"); 
parametersMap.add("id", "1234"); 

Per Messaggio:

restTemplate.postForObject(url, parametersMap, Employee.class); 

url è: String - resto URL api parametersMap - MultiValueMap dipendenti - oggetto deve essere convertito dalla risposta JSON

per ottengo:

restTemplate.getForObject(url, class object, variablesMap); 

url is: String - rest ap i URL variablesMap - Map oggetto di classe - oggetto che deve essere convertito dalla risposta JSON

+0

Come ottenere risposta della richiesta? – gstackoverflow

Problemi correlati