Páginas
▼
segunda-feira, 25 de julho de 2016
Webservice - Exemplo serviço RestFULL com o mobile.
[16:22:07] Fábio Alexandre Silveira: Pessoal, com a rotina abaixo consegui consumir o serviço RestFULL com o mobile.
//Retorno ao Httprequest
ResCode is Buffer
lstlotLocal is ResultLoteLocal//Minha class
//Dados de Envio
sHttpQuery is string
//Minha Variaveis POST
sSistema is string ="999999"
sAssinatura is string = "xyxyxyxyxyxyxyxyxyxyyxxyyxyxy"
sUnidade is string = "999"
//Dados de user
bufBUser is Buffer = "MyUser"
bufBPassword is Buffer = "XYXYXYXYXYXYXYYXYXYXYX"
//
bufSAuthenticacaoBasc is Buffer = Crypt(StringBuild("%1:%2",bufBUser,bufBPassword), "", cryptNone )
//Varialvel para armazenar dados do codigo de contagem e codigo do local
sCodContange is string
sCodLocal is string
//Limpa o looper
LooperDeleteAll(LOOP_LOTESCONTAGEM)
//Cria o formulário de envio
HTTPCreateForm("FORM")
HTTPAddParameter( "FORM","sistema",sSistema)
HTTPAddParameter( "FORM","assinatura",sAssinatura)
HTTPAddParameter( "FORM","unidade,",sUnidade)
IF NoSpace( EDT_CODLOTE)="" THEN
//GET para a lista de lotes. Para o caso, onde o usuário não informou contagem e local
//API
sHttpQuery = URLEncode(StringBuild ("https://Seu _dominio:sua_porta/Sua API?sistema=%1&assinatura=%2&unidade=%3",sSistema,sAssinatura,sUnidade))
ELSE
sCodContange = ExtractString(EDT_CODLOTE,1,"-",FromBeginning)
sCodLocal = ExtractString(EDT_CODLOTE,2,"-",FromBeginning)
IF sCodLocal = EOT OR sCodLocal="" THEN
Info("Favor informar código do local")
RETURN
END
HTTPAddParameter( "FORM","Parametro_1",sCodContange)
HTTPAddParameter( "FORM","Parametro_1",sCodLocal)
//API
sHttpQuery = URLEncode( StringBuild( "https://Seu _dominio:sua_porta/Sua_API?sistema=%1&assinatura=%2&unidade=%3&contagem=%4&local=%5",sSistema,sAssinatura,sUnidade,sCodContange,sCodLocal))
END
//Authentica requsição
<COMPILE IF ConfigurationType=Android OR ConfigurationType=iOS>
HTTP.IgnoreError =httpIgnoreInvalidCertificateName
<END>
//POST
ResStart is boolean = HTTPSendForm("FORM","Sua_Dominio",httpPost,"","Authorization: Basic" + bufSAuthenticacaoBasc ,"application/json")
//GET
ResStart = HTTPSendForm("FORM",sHttpQuery,httpGet,"","Authorization: Basic " + bufSAuthenticacaoBasc ,"application/json")
IF ResStart = True THEN
//Resgata o valor da consulta
ResCode= HTTPGetResult()
IF ResCode <> "" THEN
//Desserializao json na classe LotesLocais
Deserialize(lstlotLocal,ResCode,psdJSON)
//Carrega o controle looper
FOR i = 1 TO ArrayCount(lstlotLocal.lista)
LooperAddLine(LOOP_LOTESCONTAGEM,lstlotLocal.lista[i].idContagem,lstlotLocal.lista[i].descricaoLocal,lstlotLocal.lista[i].qtdNiveis,lstlotLocal.lista[i].qtdEndereco,lstlotLocal.lista[i].qtdProdutos)
END
ELSE
Info("Registro não encontrado!")
<COMPILE IF ConfigurationType=Android>
SetFocus(EDT_CODLOTE)
<END>
END
//Envia mensagem de erro
Error(ErrorInfo(errFullDetails ))
END
CASE EXCEPTION:
Error( ExceptionInfo(errFullDetails))
[16:22:22] Fábio Alexandre Silveira: Espero que ajude.
Nenhum comentário:
Postar um comentário