BlackTDN Search

sábado, 3 de março de 2012

BlackTDN :: Autenticando via HttpGet

O fragmento de Código abaixo demonstra uma das maneiras de autenticação via HttpGet usando o Header.

#INCLUDE "PROTHEUS.CH"
User Function HttpAuth()

    Local aHeadOut        := {}
    Local cHttpHeader     := ""
    Local cUrl              := "http://teste.com.br"
    Local cHttpGet        := ""

    aAdd( aHeadOut , "Authorization: Basic "+Encode64("user"+":"+"password" ) )
    cHttpGet            := HttpGet(cUrl,"",NIL,aHeadOut,@cHttpHeader)

Return( cHttpGet )

[]s

иαldσ dj

11 comentários:

  1. Gustavo deixou um novo comentário sobre a sua postagem "BlackTDN :: Autenticando via HttpGet":

    Grande Naldo,

    São sei se este post foi criado em resposta à minha súplica enviada por e-mail, más funcionou para WebServer, na verdade acabei fazendo um mix com o que eu já tinha.


    oWs:_HEADOUT := {}
    aadd( oWs:_HEADOUT , "Authorization: Basic "+Encode64("User"+":"+"Pass"))

    Muito obrigado, como sempre "certeiro!!!"

    ResponderExcluir
  2. Estou utilizando esta forma de autenticação e quando vou receber um conteúdo igual ou superior a 1.074kb, ele me retorna NIL, apresentando a mensagem "string size overflow!". Alguém tem uma solução para isto?

    Agradeço desde já,

    ResponderExcluir
  3. Esse erro não tem relação com a forma de autenticação, mas sim com o limite máximo de uma string em ADVPL. A soluçao: tentar diminuir, na origem, o tamanho do arquivo retornado.

    Read more: http://www.blacktdn.com.br/2012/03/blacktdn-autenticando-via-httpget.html#ixzz1uwCgJ8Ok

    ResponderExcluir
  4. quando tiro o https e deixo só http, muda o erro de 500, para 302

    Grato,
    Moura

    ResponderExcluir
  5. No meu caso está dando erro:

    cHttpGet


    cHttpHeader
    HTTP/1.1 500 Internal Server Error
    Date: Wed, 03 Dec 2014 17:24:33 GMT
    Server: Apache
    Content-Length: 149
    X-Powered-By: Servlet/2.5 JSP/2.1
    Connection: close
    Content-Type: text/xml; charset=utf-8

    ResponderExcluir
  6. Prezados , boa noite.
    Estou tentando autenticar um Webservice da linha RM ( Totvs Bussiness Conector ) , mas não consigo por nada. Vi que o Gustavo conseguiu fazer usando o _HEADOUT. ALguem teria o exemplo completo da chamada para autenticação? Obrigado. Abs.

    ResponderExcluir
  7. Prezados , boa noite.
    Estou tentando autenticar um Webservice da linha RM ( Totvs Bussiness Conector ) , mas não consigo por nada. Vi que o Gustavo conseguiu fazer usando o _HEADOUT. ALguem teria o exemplo completo da chamada para autenticação? Obrigado. Abs.

    ResponderExcluir
  8. Veja o primeiro comentário do post :D

    ResponderExcluir
  9. oWsTeste:_HEADOUT := { "Authorization: Basic "+ Encode64('mestre:totvs' ) }

    ResponderExcluir
  10. Boa Tarde , Naldo.

    Eu estou tentando criar um serviço com o REST do PROTHEUS com Autenticação BASICA , você teria algum exemplo com essa Autenticação desde o Consumo (Cliente) ate o Serviço.
    Eu localizei varios exemplos do lado do CLIENT enviando uma Requisição com autenticação mais nenhum exemplo do lado do Serviço recebendo essa autenticação e tratando esses dados da autenticação.

    Segue abaixo um Exemplo de Client que encontrei na NET fazendo uma Requisição com Autenticação para o Serviço REST Protheus , mais eu preciso de um Exemplo de como essa autenticação e Recebida e tratada do Lado do Serviço REST PROTHEUS.

    User Function tstFwRestTest()

    Local cUrl := "https://seuendereco.com.br"
    Local cUser := "usuario"
    Local cPass := "senha"
    Local oRestClient := FWRest():New(cUrl)
    Local aHeader := {}

    // inclui o campo Authorization no formato : na base64
    Aadd(aHeader, "Authorization: Basic " + Encode64(cUser+":"+cPass))

    /*GET */
    oRestClient:SetPath("/teste/produto/search?q=Nome%20do%20Produto")

    If oRestClient:Get(aHeader)
    Alert("GET - " + oRestClient:GetResult())
    Else
    Alert("GET - " + oRestClient:GetLastError())
    EndIf


    Se você tiver algum exemplo eu agradeço.

    Obrigado.

    ResponderExcluir
  11. Boa tarde, Naldo.
    Criei um Server Rest mas estou com duvidas para fazer a solicitação do mesmo passando parametros, vc pode colocar um exemplo
    Obrigado
    André.

    ResponderExcluir