Se alguma pergunta ou resposta lhe foi útil, não deixe de dar seu voto positivo!

Consumir API de terceiro que utiliza URL HTTPS em json retornando

Preciso consumir uma API de terceiros que utiliza URL HTTPS, no postman, funciona normalmente, no Protheus retorna a mensagem "403 Forbidden", alguém tem alguma dica?

/*
oRestClient  := FWRest():New("https://apiempresa.com.br/")
cUrlPath := "ics-seguranca/v1/oauth2/tokenGerar"
403 Forbidden

oRestClient  := FWRest():New("https://apiempresa.com.br/ics-seguranca/")
cUrlPath := "v1/oauth2/tokenGerar"
403 Forbidden

oRestClient  := FWRest():New("https://apiempresa.com.br/ics-seguranca/v1/")
cUrlPath := "oauth2/tokenGerar"
403 Forbidden
*/

oRestClient  := FWRest():New("https://apiempresa.com.br/ics-seguranca/v1/oauth2/")
cUrlPath := "tokenGerar"
// 403 Forbidden

// https://apiempresa.com.br/ics-seguranca/v1/oauth2/tokenGerar

jLogin := JSonObject():New()
jLogin["grant_type"] := "password"  
jLogin["username"] := ::cCodUser //  
jLogin["password"] := ::cCodPasw // 

aadd(aHeadOut,'Content-Type: application/json' )
aadd(aHeadOut,'Cache-Control: no-cache')
aadd(aHeadOut,'Authorization: Basic SUNTOnRvdGFs')

cJson := jLogin:ToJson()

oRestClient:setPath(cUrlPost)
oRestClient:SetPostParams(EncodeUTF8(cJson)) 

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

cErro := oRestClient:GetLastError()
compartilhar
  • json := jLogin:ToJson() seria na verdade cjson := jLogin:ToJson() ?

    Douglas Bichir   09 de Jul de 2020
  • Infelizmente é só um erro de transcrição. Queria que fosse o problema!

    Fernando Pinottio   09 de Jul de 2020
  • O autorization é Basic mesmo? HTTPS normalmente tende a ser utikizado bearer...

    Douglas Bichir   09 de Jul de 2020
  • É basic mesmo, no postman funciona normal.

    Fernando Pinottio   10 de Jul de 2020
  • Acho que é o seguinte aadd(aHeadOut,'Authorization: Basic SUNTOnRvdGFs') esse SUNTOnRvdGFs já é base 64? Se for invés de digitar o base 64, faz com encode64 exemplo -> Aadd(aHeadStr, "Authorization: Basic " + Encode64("protheus:t@t890"))

    Douglas Bichir   10 de Jul de 2020
Mostrar todos os 9 comentários>
  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 json https forbidden ou faça a sua própria pergunta.