Blog de Tecnologia desenvolvido por Thiago Campos Pereira

Blog criado para documentar e disseminar o conhecimento tecnológico adquirido por Thiago Campos Pereira e colaboradores.

segunda-feira, junho 05, 2006

PowerBuilder - Utilizando HTTP Post

Recentemente tive a necessidade de utilizar o HTTP Post, chamando uma URL passando um XML e recebendo um XML de resposta.
 
No final das contas, o processo é simples, mas não achei nada "pronto" na Web de como utiliza-lo.
 
Abaixo vão os passos necessários para criação de um objeto que chama o método HTTP Post:
 
1 - Objeto com resultado Web
    - Crie um User Object do tipo Standart/InternetResult
    - Declare uma variável de instancia onde será armazenada o retorno (No nosso exemplo, criamos a variável VISRetornoWeb )
    - Na função InternetData(), atribua o parâmetro da função para a variável criada no passo acima
        VISRetornoWeb = string(data)
 
        return 1
 
2 - Criando objeto para disparar metodo HTTP Post
    - Cria um objeto do tipo Custom
    - Crie uma instancia do objeto criado na etapa 1 (No nosso caso, a instancia chama UOI_internet_resultado)
    - Crie uma função para chamar o método HTTP Post com os seguintes argumentos
        * Value String p_URL
        * Value String p_ParametroWeb (Parâmetros que serão passados para Web)
        * Reference String p_RetornoWeb (Parâmetros que serão retornados da Web)
    - Coloque o seguinte código na função
Blob Vlblb_args
String Vls_headers
Long Vll_ret
 
p_retornoWeb = ''
 
Vlblb_args = blob(p_parametroWeb)
 
vll_ret = UOI_Inet.PostURL(p_url, Vlblb_args, vls_headers,  UOI_internet_resultado)
 
if vll_ret = 1 then
 VISMSG = ""
elseif vll_ret = -1 then
 VISMSG = "Erro ao chamar o objeto de acesso a internet."
 Return -1
elseif vll_ret = -2 then
 VISMSG = "A URL informada é inválida."
 Return -1
elseif vll_ret = -4 then
 VISMSG = "Não foi possível conectar a Internet."
 Return -1
elseif vll_ret = -5 then
 VISMSG = "Não foi possível conectar a Internet utilizando protocolo seguro (HTTPS)."
 Return -1
elseif vll_ret = -5 then
 VISMSG = "Ocorreu um erro na requisão a Internet."
 Return -1
else
 VISMSG = "Ocorreu um erro não documentado no acesso a Internet. - Codigo :" + string(vll_ret)
 return -1
end if
 
p_retornoWeb = uoi_internet_resultado.visretornoweb
 
return 1

2 Comentários:

Às 05 junho, 2008 22:56 , Anonymous Anônimo disse...

oi Thiago, td bem?

bom, deixa ver se tu consegue me ajudar...

tenho que chamar um webservice pelo PB para retornar muitas informações, como estou desenvolvendo em PB8 e este ainda não tem nativo chamada para webservices, resolvi fazer essa chamada pelo oracle, então criei uma procedure, mas agora me deparei com um problema, estou recebendo muita informação e o tipo de campo que estou utilizando não é suficiente, estou trabalhando com o long, tentei usar o clob, mas não sei se não soube usar corretamente, até acho que deve ser isso, mas igual não está funcionando, até pq não consegui fazer o pb entender o tipo clob, pois gravo uma tabela e leio a mesma no pb....bom tu já precisou fazer algo similar a isso?, tens alguma idéia para me dar?

se tiver alguma dica, meu e-mail é dadi_rs@yahoo.com.br

grata,
Dadi - POA

 
Às 24 outubro, 2008 16:51 , Anonymous Anônimo disse...

Olá Thiago!

Tenho que fazer um download de um arquivo da internet, só que pelo PB, então, a questão é como irei conseguir efetuar a autenticação na página(responder ao header enviado pela página), efetuar o login(pois é necessário efetuar o login), e setar os parametros para fazer o download do arquivo. Não deve abrir a pagina do browser, o usuário irá clicar no botão e em seguida irá aparecer uma janela para o mesmo informar o usuário e senha(para acessar a página da web), e depois da autenticação efetuada, irá aparecer outra janela para ele informar os parametros para baixar o arquivo desejado.
Os link's que deverão ser executado eu já tenho. só preciso saber como fazer!
OBS: Uso o PB 9
Email: lucimar.frassetto@gmail.com

Desde já agradeço!

Atenciosamente,
Lucimar Frasseto Canto.

 

Postar um comentário

Assinar Postar comentários [Atom]

<< Página inicial