Essa requisição não precisa de autenticação, ou seja não tem login e senha. Fazendo essa requisição no Postman funciona perfeitamente. Mas quando executo o código acima, obtenho o erro abaixo:
No caso eu preciso colocar essa anotação @CrossOrigin ao método que está fazendo a requisição?
J
jbdj2006
Eu coloquei essa anotação @CrossOrigin acima do método que faz a requisição, mas não funcionou.
J
jbdj2006
Eu coloquei no Controller, mas não funcionou.
T
thimor
era so isso mesmo para funcionar. pq quando a requisicao sai do browser precisa habilitar o cors. no postman voce nao tera problemas. tenta tirar o https, usa so o http mesmo
J
jbdj2006
apena com http, não funciona no Postman.
J
Jonathan_Medeiros
curl é um formato de requisição que o postman permite gerar, queria ver essa informação pra sugerir o que poderia estar faltando no seu código!
Mas pelo que você me disse, acredito que falte algum header, verifique todos os cabeçalhos que a request contém no postman e aplique na sua chamada do restTemplate!
T
thimor
eu coloquei uma api no heroku, sem spring-security security e funciona bl. O client é react. No seu caso deve estar faltando colocar algum header na requisicao
Na sua request você está passando todos os parâmetros corretamente?
Analisando pelo curl que me enviou, acredito que você não esteja fornecendo todos os parâmetros da requisição, por este motivo ocorre o erro 401!
Parâmetros necessários:
api-version:2016-06-01/*Sem ele causa um 400*/sp:%2Ftriggers%2Fmanual%2Frun/*Sem ele causa um 400*/sv:1.0/*Sem ele causa um 400*/sig:zxm46aQnBj3ZTKPOddnnwUgtQZoQcQfixNtXVxAJjPg/*Sem ele causa um 401*/
J
jbdj2006
Mas esses parâmetros estão na url.
Eu teria que setar esses parâmetros separadamente?
J
jbdj2006
Fiz um main com o resumo do código para ficar mais fácil testar:
try{HttpHeadersrequestHeaders=newHttpHeaders();requestHeaders.add("Accept",MediaType.ALL_VALUE);requestHeaders.setContentType(MediaType.APPLICATION_JSON);HttpEntity<?>requestEntity=newHttpEntity<>(requestHeaders);Stringurl=newStringBuilder().append("https://prod-12.westeurope.logic.azure.com:443/workflows/fbf4c29cbcad4679b1a1159fff7b07f9/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=zxm46aQnBj3ZTKPOddnnwUgtQZoQcQfixNtXVxAJjPg").toString();RestTemplaterest=newRestTemplate();rest.exchange(url,HttpMethod.POST,requestEntity,Void.class);logger.info("Bot enviado com sucesso!");}catch(RestClientExceptione){logger.error("Erro ao enviar Bot.",e);throwe;}
Tentei com queryparams e também com querys parametrizadas, mas não funcionou.
J
Jonathan_Medeiros
É bem estranho este comportamento, muito provavelmente é algo com o formato em que o restTemplate envia a request, pois não faz sentido a mesma request que funciona no postman falha na aplicação!