FWRest e conteudo Header

Bom dia, Estou consumindo uma API de terceiro, ao realizar teste pelo Postman funciona corretamente, ao realizar o mesmo requisição pelo Protheus gera mensagem de erro.

Analisando o Header do Postman ele preenche automaticamente o "Content-Length", simulando no Postman tirando este parâmetro gera o mesmo que ocorre no Protheus.

Abaixo segue trecho do fonte:

    oRstCliLog := FWRest():New(cUrlBase)
    oRstCliLog:setPath(cPath)
    oRstCliLog:SetPostParams(cJsonPos)


    aHeadOut := {}

    AAdd(aHeadOut, "Content-Type: application/json; charset=UTF-8")
    AAdd(aHeadOut, "Accept: application/json")
    Aadd(aHeadOut, "Authorization: Bearer 2|KqB3cwgxR4DeiyqmdhplD6FNP5xBpkGxhU58uDcN" )
    aAdd(aHeadOut,"Content-Length: " + Alltrim(Str(Len(cJsonPos))) )

Qual a forma correta de informar "Content-Length" no Protheus para que funcione igual ao Postman?

compartilhar
  • Edson, essa forma que você fez não funcionou? Pois é basicamente isso que fazemos.

    Daniel Mendes   23 de Jan de 2022
  • Daniel, notei o seguinte mesmo forçando o envio do Content-Length, o sistema envia outro valor diferente do calculado no trecho do código repassado.

    Edson Maurcio Gonçalves   24 de Jan de 2022
  • Remova alguns itens do cabeçalho, deixe desse jeito:

    oRest := FWRest():New("https://api.chatcorp.com.br/srvc") oRest:setPath("/w/send/text")

    aadd(aHeadOut,'User-Agent: Mozilla/4.0 (compatible; Protheus '+GetBuild()+')') aadd(aHeadOut,'Content-Type: aplication\json;charset=UTF-8')

    Diego Andrade   25 de Jan de 2022
  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!

4 respostas

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