Para autenticar fornecendo seus usuário e senha em um cabeçalho de HTTP Basic, você deve enviar no HEADER da requisição HTTP o campo Authorization conforme o modelo abaixo:
GET /rest/sample
Host: localhost:8080
Accept: application/json
Authorization: BASIC YWRtaW46MTIzNDU2
A chave precisa estar composta do usuário e senha no formato base64, ou seja, utilize a função: Encode64 ()
Usuário e senha precisarão estar juntos ( usuário:senha ), exemplo:
aAdd(aHeader,”Authorization: Basic “+Encode64(“usuário“+”:”+”senha” ) )
Exemplo de código:
method JsonPost(cURL, cPath, cJSON) class teste
local aHeader := {}
Local aAux :={}
Local iVez :=0
local aPostRet
Local bRet
Local cHRet
AADD(aHeader,’POST /dataservice/consultarotacep HTTP/1.1′)
AADD(aHeader,’Host: sitexxx.com.br’)
AADD(aHeader,’Content-Type: application/json’)
AADD(aHeader,”cache-control: no-cache”)
aAdd(aHeader,”Authorization: Basic “+Encode64(“usuário“+”:”+”senha” ) )
cId := HttpPost(cURL + cPath, , cJson, 120, aHeader, @cHRet) // executa url
bRet := (‘OK’ $ cHRet) // Valida retorno
Boa Tarde,
Não estou conseguindo finalizar minha API com autenticação, tenho um fonte pequeno para realizar este teste e não sei mais o que fazer para que a autenticação seja efetuada com sucesso.
Vejo o Fonte:
#include ‘protheus.ch’
user function REST0002()
Local cUrl := ‘http://meuip:1081/rest/’
Local cPath := ‘helloworld/OlaMundo’
Local oRest
Local aHeader := {}
//Consumindo com autorização basica
AADD(aHeader,’Content-Type: application/json’)
AADD(aHeader,’cache-control: no-cache’)
aAdd(aHeader,’Authorization: BASIC ‘+ Encode64(‘WFSOUZA’+’:’+’vsp#3falcon@’))
//Instancia o objeto
oRest := FwRest():New(cUrl)
//Define o rescurso que sera usado
oRest:setPath(cPath)
//chama o metodo get
If oRest:get()
MsgAlert(oRest:GetResult())
Else
MsgAlert(oRest:GetLastError())
EndIf
return
Agradeço se alguma puder me ajudar.
Olá Wanderson.
Em qual etapa vc não conseguiu evoluir ? Consegue enviar mais detalhes (se possível, compartilhe o error log) ?