mensagem 404 not found ao tentar consumir serviço rest

Olá. Estou desenvolvendo uma rotina para consumir uma API de uma transportadora, fiz um teste pelo postman, e está funcionando normal. Via ADVPL, dá a mensagem "404 not found", utilizo o mesmo endereço no FWREST():New() e no SetPath() mas já fiz varias mudanças mas continua retornando a mensagem. No Postman configurei apenas: KEY = Authorization VALUE = Bearer (numero do token recebido da transportadora)

Eu tentei conforme abaixo mas ocorreu a mesma mensagem (404 not found).

oRestClient     := FWRest():New("www.jadlog.com.br")
oRestClient:setPath("/embarcador/api/pedido/incluir")

Segui a orientação do Rodrigo agora deu certo, mas, ocorreu a seguinte mensagem: 405 Method not allowed, agora, tem a ver com oRestClient:SetPostParams(cJson) ?

Method Integra(cJson, cUrlPost) Class xIntegraTransp

Local oRestClient  := FWRest():New("www.jadlog.com.br/embarcador/api/pedido/incluir")
Local aHeadOut         := {}
Local cJsonRet         := ""
Local _cAutoriz         := ""
Local oJson             := JsonObject():New()

cToken := "eyxyxxyzxeyxyxxyzxeyxyxxyzx.eyxyxxyzxeyxyxxyzxeyxyxxyzx.eyxyxxyzxeyxyxxyzxeyxyxxyzx"
aadd(aHeadOut,'Content-Type: application/json' )
aadd(aHeadOut,'Authorization: Bearer '+cToken)

oRestClient:setPath("www.jadlog.com.br/embarcador/api/pedido/incluir")
// oRestClient:SetPostParams(EncodeUTF8(cJson)) // nao funcionou
oRestClient:SetPostParams(cJson)

If oRestClient:Post(aHeadOut)
   cJsonRet := oRestClient:GetResult()
EndIf

if oRestClient:get()
   MsgAlert(oRestClient:GetResult())
else        
   MsgAlert(oRestClient:GetLastError()) // retorna "404 not found"
Endif
compartilhar
  • Manda o código para o povo analisar

    Patrick Zerbinatti   27 de May de 2020
  • O Postman inclui diversos headers em sua requisição, mesmo que você não peça isso, com isso a sua simulação no Postman por vezes tem um resultado completamente diferente, é necessário cautela ao utilizar o mesmo, por exemplo erros de CORS, no navegador você pode ter, mas o Postman não vai gerar tal problema pra você. Verifique se o Postman criou algum header na sua requisição, o mais comum é o content-length.

    Daniel Mendes   27 de May de 2020
  • No Postman não tem nada no contente-length, está configurado Content-Type e Authorization com o token para acesso ao serviço

    Fernando Pinottio   27 de May de 2020
  • Fernando, adicione o https:// ou http:// na declaração do oRestClient. Fiz um teste aqui com o endereço completo e deu certo.

    Rodrigo Morgon   28 de May de 2020
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags fwrest ou faça a sua própria pergunta.