Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

Consumindo um Webservice No Delphi 7

Recommended Posts

Olá pessoal,

 

Tenho neste link um exemplo de como consultar a situação do CPF e neste outro outras consultas consumindo webservice. Fiz um pequeno teste:

 

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

//Passando valores para campos da web.

WebBrowser1.OleObject.Document.all.Item('login', 0).value := 'teste';

WebBrowser1.OleObject.Document.all.Item('senha', 0).value := 'teste';

WebBrowser1.OleObject.Document.all.Item('cpf', 0).value := TxtCPF.Text;

 

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

WebBrowser1.Navigate('http://ws.fontededados.com.br/consulta.asmx?op=SituacaoCadastralPF');

 

end;

 

Ele está funcionando perfeitamente, mas não sei como clicar no botão, pois não existe um ID ou um Name para o botão para implementar o click

 

WebBrowser1.OleObject.Document.all.Item('Button', 0).Click;

 

Contudo, isso não é o principal motivo deste post, este é apenas um teste. O principal motivo deste post é utilizar este webservice para, ao digitar o CPF meu campo receber o nome do dono deste CPF, pois é gerada em outra página um XML contendo o nome da pessoa.

 

Alguém sabe como posso resolver esse problema?

 

Grato,

 

Ilano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como posso pegar o nome da pessoa da consulta no Consulta CPF Web Service e jogá-lo para o meu campo TxtNome? Só preciso descobrir como implemento isso e montar o XML. Por favor, me ajudem meu tempo está expirando e ainda não consegui implementar isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou uma negação com XMLs e tal mas tive uma idéia:

function TForm1.DownloadFile(Source, Dest: string): Boolean;
begin
 try
   Result:= UrlDownloadToFile(nil, PChar(source),PChar(Dest), 0, nil) = 0;
 except
   Result:= False;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if DownloadFile('http://ws.fontededados.com.br/consulta.asmx/SituacaoCadastralPF?login=teste&senha=teste&cpf=999999999',
                 'C:\Users\William Ferreira\Arquivo.XML') then //Infome um caminho válido para este parâmetro
   ShowMessage('Download realizado com sucesso!')
 else
   ShowMessage('Falha no donwload!');

end;

 

Você faz o download do arquivo XML e faz a leitura do arquivo.

 

meu código está com erro, como não sei nada sobre leitura de XML através de componentes que não sejam decendentes do TextFile, não consigo corrigir o problema:

procedure TForm1.ExibeSituacao;
var
 XMLFile : TXMLDocument;
 NodePai : IXMLNode;
 I : Integer;
 {SituacaoCadastral}
 {RetornoSituacaoCadastralPF}
begin
 XMLFile := TXMLDocument.Create(Application);
 XMLFile.LoadFromFile('C:\Users\William Ferreira\Arquivo.XML');
 XMLFile.Active  := True;
 NodePai := XMLFile.DocumentElement.ChildNodes['RetornoSituacaoCadastralPF'];
 ShowMessage(NodePai.Text);
end;

 

 

---------------

 

 

Correção: Consegui fazer a leitura do XML:

procedure TForm1.ExibeSituacao;
var
 XMLFile : TXMLDocument;
 NodePai : IXMLNode;
 I : Integer;
 {SituacaoCadastral}
 {RetornoSituacaoCadastralPF}
begin
 XMLFile := TXMLDocument.Create(Application);
 XMLFile.LoadFromFile('C:\Users\William Ferreira\Arquivo.XML');
 XMLFile.Active  := True;
//  NodePai := XMLFile.DocumentElement.ChildNodes['SituacaoCadastral'];
 ShowMessage(XMLFile.DocumentElement.ChildNodes['SituacaoCadastral'].Text);
end;

 

Não é a situação ideal mas consegui realizar a verificação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Engraçado bdexterholland, a "ideia" que voce teve é praticamente igual a esta aqui ó http://scriptbriasil.com.br/forum/index.php?showtopic=130463

 

Voce não teve nem o trabalho de mudar o nome da função. Alias, não só dessa mas de outros lugares tambem, voce montou essa função de varios pontos na net e não citou nenhuma fonte e ainda assumiu a ideia para voce? Isso é uma falta gravíssima, voce como moderador trainee não deveria dar exemplo quanto a isto?

 

 

 

 

 

Sou uma negação com XMLs e tal mas tive uma idéia:

function TForm1.DownloadFile(Source, Dest: string): Boolean;
begin
 try
   Result:= UrlDownloadToFile(nil, PChar(source),PChar(Dest), 0, nil) = 0;
 except
   Result:= False;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if DownloadFile('http://ws.fontededados.com.br/consulta.asmx/SituacaoCadastralPF?login=teste&senha=teste&cpf=999999999',
                 'C:\Users\William Ferreira\Arquivo.XML') then //Infome um caminho válido para este parâmetro
   ShowMessage('Download realizado com sucesso!')
 else
   ShowMessage('Falha no donwload!');

end;

 

Você faz o download do arquivo XML e faz a leitura do arquivo.

 

meu código está com erro, como não sei nada sobre leitura de XML através de componentes que não sejam decendentes do TextFile, não consigo corrigir o problema:

procedure TForm1.ExibeSituacao;
var
 XMLFile : TXMLDocument;
 NodePai : IXMLNode;
 I : Integer;
 {SituacaoCadastral}
 {RetornoSituacaoCadastralPF}
begin
 XMLFile := TXMLDocument.Create(Application);
 XMLFile.LoadFromFile('C:\Users\William Ferreira\Arquivo.XML');
 XMLFile.Active  := True;
 NodePai := XMLFile.DocumentElement.ChildNodes['RetornoSituacaoCadastralPF'];
 ShowMessage(NodePai.Text);
end;

 

 

---------------

 

 

Correção: Consegui fazer a leitura do XML:

procedure TForm1.ExibeSituacao;
var
 XMLFile : TXMLDocument;
 NodePai : IXMLNode;
 I : Integer;
 {SituacaoCadastral}
 {RetornoSituacaoCadastralPF}
begin
 XMLFile := TXMLDocument.Create(Application);
 XMLFile.LoadFromFile('C:\Users\William Ferreira\Arquivo.XML');
 XMLFile.Active  := True;
//  NodePai := XMLFile.DocumentElement.ChildNodes['SituacaoCadastral'];
 ShowMessage(XMLFile.DocumentElement.ChildNodes['SituacaoCadastral'].Text);
end;

 

Não é a situação ideal mas consegui realizar a verificação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpe mas o código copiado foi apenas o código do Download, se você considera esta falha grave, por favor, sinta-se a vontade de denunciar. Só gostaria que dizer que o fato de dizer que tive a idéia não necessariamente quer dizer que sou o dono do script. Minha idéia era realizar o download o XML resultante buscar os dados direto em localhost, sem usar componentes SOAP.

 

Gostaria também que, se você souber o real autor da função, me informe que eu citarei como fonte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.