Ir para conteúdo
  • Cadastre-se

dev botao

Off - Webservice Horus


  • Este tópico foi criado há 3941 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

ola pessoal, nao sei se este é o local correto, se nao for, podem mudar, ok?

 

to tentando conectar com o webservice da Horus, mas sempre ocorre os erros:

 

Invalid User ou java.lang.NullPointerException

 

o webService é no endereco: http://aplicacao-homologacao.saude.gov.br/horus-ws-basico/RecebeDadosWS?wsdl

 

a funcao importada pelo WSDL Importer: 

function GetRecebeDadosWS(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): RecebeDadosWS;

to usando este codigo:

  

procedure TForm1.Button1Click(Sender: TObject);
var xRecebeDados: RecebeDadosWS;
   myByteArray: TByteDynArray;
   memStream: TMemoryStream;
   retorno: horus_ws_resposta;
   uf, proto, data, user: wideString;
begin
   memstream := TMemoryStream.Create;

   try
      xml.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'horus_entrada.xml');
      xml.SaveToStream(memstream);


      setLength(myByteArray, memStream.Size);
      if memstream.size > 0 then
         move(PAnsiChar(memStream.Memory)^, myByteArray[0], memStream.size);

      xRecebeDados := GetRecebeDadosWS(false,'', HttpRio1);
      retorno := xRecebeDados.recebeDados(myByteArray);

      {uf := '510020';
      proto := '962';
      data := '24/07/2013';
      user := '[email protected]';
      retorno := xRecebeDados.consultarInconsistenciasPorMunicipio(uf, proto, data, user);}

      ShowMessage('Mensagem de Retorno do WS' + #13 + #13 +
         retorno.horus_ws_mensagem.mensagem_global);
   finally
      memStream.Free;
   end;

   {myByteArray := FileToByteArray(ExtractFilePath(ParamStr(0)) + 'horus_entrada.xml');
   xRecebeDados := GetRecebeDadosWS(false); //,'', HttpRio1);
   retorno := xRecebeDados.recebeDados(myByteArray);}
end;

a funcao recebeDados pede como parâmetro um TByteDynArray, q é o xml convertido

 

tb ja tentei usar assim:

xRecebeDados := GetRecebeDadosWS(false);

qdo passo o HTTPRio como parâmetro, o evento RIOHTTPWebNode1BeforePost esta assim:

procedure TForm1.RIOHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;
   Data: Pointer);
var user, pass: widestring;
begin
   user := '[email protected]';
   pass := 'dnshorus1234';
   if not InternetSetOption(Data,
      INTERNET_OPTION_USERNAME,
      PChar(user {HTTPRIO1.HTTPWebNode.UserName}),
      Length(user {HTTPRIO1.HTTPWebNode.UserName})) then
      ShowMessage('Erro: ' + #13 + SysErrorMessage(GetLastError));


   if not InternetSetOption(Data,
      INTERNET_OPTION_PASSWORD,
      PChar(pass {HTTPRIO1.HTTPWebNode.Password}),
      Length(pass {HTTPRIO1.HTTPWebNode.Password})) then
      ShowMessage('Erro: ' + #13 + SysErrorMessage(GetLastError));
end;

os fontes, o xml e o wsdl estao nos anexos. se alg puder dar uma forca, assim q ficar ok, posto o resultado aqui. valew

 

usando D7. ja fiz a atualizacao do WSDL Importer

 

 

Horus.rar

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3941 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.