Desejo converter o seguinte trecho de ondulação (de trabalho) em uma chamada RestTemplate:
curl -i -X POST -d "[email protected]" https://app.example.com/hr/email
Como passo o parâmetro de email corretamente? O código a seguir resulta em uma resposta 404 Não Encontrada:
String url = "https://app.example.com/hr/email";
Map<String, String> params = new HashMap<String, String>();
params.put("email", "[email protected]");
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity( url, params, String.class );
Tentei formular a chamada correta no PostMan e posso fazê-la funcionar corretamente especificando o parâmetro email como um parâmetro "form-data" no corpo. Qual é a maneira correta de obter essa funcionalidade em um RestTemplate?
java
spring
rest
resttemplate
sim
fonte
fonte
Respostas:
O método POST deve ser enviado ao longo do objeto de solicitação HTTP. E a solicitação pode conter cabeçalho HTTP, corpo HTTP ou ambos.
Portanto, vamos criar uma entidade HTTP e enviar os cabeçalhos e parâmetros no corpo.
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html#postForObject-java.lang.String-java.lang.Object-java.lang. Class-java.lang.Object ...-
fonte
ResponseEntity<String> response = new RestTemplate().postForEntity(url, request, String.class);
Eu estou recebendoorg.springframework.http.converter.HttpMessageNotWritableException: Could not write content: No serializer found for class java.util.Collections$3
args
é uma matriz de Cadeiacurl -X POST --data '{"file": "/xyz.jar", "className": "my.class.name", "args": ["100"]}' -H "Content-Type: application/json" localhost:1234/batches
Como postar dados mistos: Arquivo, String [], String em uma solicitação.
Você pode usar apenas o que precisa.
A solicitação POST terá File em seu corpo e na próxima estrutura:
fonte
aqui está o programa completo para fazer uma chamada de repouso do POST usando o RestTemplate da primavera.
fonte
ResponseEntity<?> response = new RestTemplate().postForEntity(url, request, String.class);
. Eu estou recebendoorg.springframework.http.converter.HttpMessageNotWritableException: Could not write content: No serializer found for class java.util.Collections$3
application/json
tipo de conteúdo,application/x-www-form-urlencoded
obterá org.springframework.web.client.RestClientException: No HttpMessageConverter para java.util.HashMap e tipo de conteúdo "application / x-www-form-urlencoded" - consulte stackoverflow.com/q / 31342841/355438Sua String de url precisa de marcadores variáveis para o mapa que você passa para o trabalho, como:
Ou você pode codificar explicitamente os parâmetros de consulta na String para começar e não precisar passar o mapa, como:
Consulte também https://stackoverflow.com/a/47045624/1357094
fonte