Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia

PReciso fazer um post xml de uma integração e o sistema esta me dando os erros em anexo.

desde ja fico agradecido pela ajuda
segue o meu codigo:

try
  result := False;
  HTTPClient := TIdHTTP.Create(Nil);
  Response := '';

      Lista := TStringStream.Create(UTF8Encode('C:\pasta\SalvarAtendimento001-envio.xml'));

      // Verificar o XML que será enviado
      ShowMessage('XML Enviado: ' + Lista.DataString);

      HTTPClient.Request.ContentType := 'application/xml; charset=utf-8';
      HTTPClient.Request.Accept := 'application/xml';

      HTTPClient.ReadTimeout := 25000;

  try
      Response := HTTPClient.Post('http://integracao.nd.com.br:85/atendimento/salvaratendimento', Lista);
      ShowMessage('Resposta: '+Response);
  except
    on ehttp: EIdHTTPProtocolException do
      ShowMessage('Erro HTTP: '+IntToStr(ehttp.ReplyErrorCode)+'-'+ehttp.ErrorMessage);
    on e: Exception do
      ShowMessage('Erro: '+e.Message);
    end;
   finally
      Lista.Free;
      HTTPClient.free;
   end;

err.jpg

erro.jpg

Postado

então...
parece q esta buscando de outro lugar o arquivo, por exemplo, já tirei esse utf-8 da primeira linha, mas ele continua aparecendo
segue meu código e o arquivo xml.

 

var
  XMLDocument : TXMLDocument;
  NodeTabela, NodeRegistro, NodeEndereco: IXMLNode;
  I: Integer;
  arquivo : TIdMultiPartFormDataStream;
  Response : String;

  HTTPClient : TIdHTTP;
  Lista : TStringStream;
  result : Boolean;
  xml : String;
begin

    XMLDocument := TXMLDocument.Create(Self);
    XMLDocument.Active := True;
    XMLDocument.Version := '1.0';
    XMLDocument.Encoding := 'utf-8';


    NodeTabela := XMLDocument.AddChild('mensagem', XMLStringToWideString('http://www.pulse.med.br/ns/atendimento'));
    NodeTabela.SetAttributeNS('xmlns:xsd', '','http://www.w3.org/2001/XMLSchema');
    NodeTabela.SetAttributeNS('xmlns:xsi', '','http://www.w3.org/2001/XMLSchema-instance');

    NodeRegistro := NodeTabela.AddChild('cabecalho');
    NodeRegistro.ChildValues['versao'] := '0.02.00';
    NodeRegistro := NodeTabela.ChildNodes.findnode('cabecalho').AddChild('identificacaoSoftwareGerador');
    NodeRegistro.ChildValues['nomeAplicativo'] := 'PRODOCTORCORP';
    NodeRegistro.ChildValues['versaoAplicativo'] := '1.0.0.1';
    NodeRegistro.ChildValues['fabricanteAplicativo'] := 'PRODOCTOR';

    NodeRegistro := NodeTabela.ChildNodes.findnode('cabecalho').AddChild('identificacaoTransacao');
    NodeRegistro.ChildValues['sequencialTransacao'] := '0001';
    NodeRegistro.ChildValues['dataRegistroTransacao'] := '2024-07-03';
    NodeRegistro.ChildValues['horaRegistroTransacao'] := '16:21:29';

    NodeRegistro := NodeTabela.ChildNodes.FindNode('cabecalho').AddChild('origem');
    NodeRegistro.ChildValues['codigoPrestador'] := '1';

    NodeRegistro := NodeTabela.AddChild('atendimento');
    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').AddChild('atendimentoEnvio');
    NodeRegistro.ChildValues['codigoAtendimento'] := '12051707';

    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').AddChild('cliente');
    NodeRegistro.ChildValues['codigoCliente'] := '123';
    NodeRegistro.ChildValues['nome'] := 'DOUGLAS';
    NodeRegistro.ChildValues['sexo'] := 'M';
    NodeRegistro.ChildValues['dataNascimento'] := '1981-07-10';
    NodeRegistro.ChildValues['cpf'] := '22582015946';
    NodeRegistro.ChildValues['cidadeNaturalidade'] := 'SAO FIDELIS';
    NodeRegistro.ChildValues['paisNaturalidade'] := 'BRASIL';
    NodeRegistro.ChildValues['telefone'] := '2299916010';
    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').ChildNodes.FindNode('cliente').AddChild('endereco');
    NodeRegistro.ChildValues['nomeLogradouro'] := 'RUA DR ALVARO GRAIN';
    NodeRegistro.ChildValues['numero'] := '206';
    NodeRegistro.ChildValues['bairro'] := 'PQ CORRIENTES';
    NodeRegistro.ChildValues['cidade'] := 'CAMPOS DOS GOYTACAZES';
    NodeRegistro.ChildValues['uf'] := 'RJ';
    NodeRegistro.ChildValues['cep'] := '28053130';
    NodeRegistro.ChildValues['pais'] := 'BRASIL';

    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').AddChild('dadosAtendimento');
    NodeRegistro.ChildValues['dataHoraAtendimento'] := '2024-07-03T12:00:00';
    NodeRegistro.ChildValues['febre'] := 'N';
    NodeRegistro.ChildValues['peso'] := '75000';
    NodeRegistro.ChildValues['altura'] := '175';


    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').AddChild('solicitacao');
    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').ChildNodes.FindNode('solicitacao').AddChild('guiasSolicitadas');
    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').ChildNodes.FindNode('solicitacao').ChildNodes.FindNode('guiasSolicitadas').AddChild('guia');
    NodeRegistro.ChildValues['tipoGuia'] := '';
    NodeRegistro.ChildValues['numeroGuiaPrestador'] := '0000102087';
    NodeRegistro.ChildValues['dataEmissaoGuia'] := '2024-07-03';
    NodeRegistro.ChildValues['numeroGuiaPrincipal'] := '0000102087';
    NodeRegistro.ChildValues['dataHoraSolicitacao'] := '2024-07-03T12:00:00';
    NodeRegistro.ChildValues['caraterAtendimento'] := 'E';
    NodeRegistro.ChildValues['convenio'] := 'UNIMED';
    NodeRegistro.ChildValues['numeroCarteiraMatricula'] := '0347950105965007';
    NodeRegistro.ChildValues['observacao'] := 'Observação teste';

    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').ChildNodes.FindNode('solicitacao').ChildNodes.FindNode('guiasSolicitadas').ChildNodes.FindNode('guia').AddChild('prestadorSolicitante');
    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').ChildNodes.FindNode('solicitacao').ChildNodes.FindNode('guiasSolicitadas').ChildNodes.FindNode('guia').ChildNodes.FindNode('prestadorSolicitante').AddChild('profissional');
    NodeRegistro.ChildValues['nome'] := 'MEDICA EXEMPLO';
    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').ChildNodes.FindNode('solicitacao').ChildNodes.FindNode('guiasSolicitadas').ChildNodes.FindNode('guia').ChildNodes.FindNode('prestadorSolicitante').ChildNodes.FindNode('profissional').AddChild('registroProfissional');
    NodeRegistro.ChildValues['conselho'] := 'CRM';
    NodeRegistro.ChildValues['inscricao'] := '1140';
    NodeRegistro.ChildValues['uf'] := 'RJ';

    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').ChildNodes.FindNode('solicitacao').ChildNodes.FindNode('guiasSolicitadas').ChildNodes.FindNode('guia').AddChild('procedimentosSolicitados');
    NodeRegistro := NodeTabela.ChildNodes.findnode('atendimento').ChildNodes.FindNode('atendimentoEnvio').ChildNodes.FindNode('solicitacao').ChildNodes.FindNode('guiasSolicitadas').ChildNodes.FindNode('guia').ChildNodes.FindNode('procedimentosSolicitados').AddChild('procedimento');
    NodeRegistro.ChildValues['codigo'] := 'CT';
    NodeRegistro.ChildValues['descricao'] := 'COLESTEROL TOTAL, DOSAGEM DE';
    NodeRegistro.ChildValues['codigoMaterialColeta'] := 'SRO';
    NodeRegistro.ChildValues['descricaoMaterialColeta'] := 'SORO';
    NodeRegistro.ChildValues['quantidade'] := '1';
    NodeRegistro.ChildValues['item'] := '1';
    NodeRegistro.ChildValues['observacao'] := 'Observação teste';
    NodeRegistro.ChildValues['materialRecebido'] := 'N';

    XMLDocument.SaveToFile('C:\Pasta\SalvarAtendimento.xml');
    Response := '';
    arquivo := TIdMultiPartFormDataStream.Create;
    arquivo.CleanupInstance;
    arquivo.AddFile('xml', 'C:\pasta\SalvarAtendimento.xml', 'xml/text');


  try
  result := False;
  HTTPClient := TIdHTTP.Create(Nil);
  Response := '';

      //Lista := TStringStream.Create('C:\pasta\SalvarAtendimento.xml');
      Lista := TStringStream.Create(UTF8Encode('C:\pasta\SalvarAtendimento.xml'));

      // Verificar o XML que será enviado
      ShowMessage('XML Enviado: ' + Lista.DataString);

      HTTPClient.Request.ContentType := 'application/xml; charset=utf-8';
      HTTPClient.Request.Accept := 'application/xml';

      HTTPClient.ReadTimeout := 25000;

  try
      Response := HTTPClient.Post('http://integracao.nd.com.br:85/atendimento/SalvarAtendimento', Lista);
      ShowMessage('Resposta: '+Response);
  except
    on ehttp: EIdHTTPProtocolException do
      ShowMessage('Erro HTTP: '+IntToStr(ehttp.ReplyErrorCode)+'-'+ehttp.ErrorMessage);
    on e: Exception do
      ShowMessage('Erro: '+e.Message);
    end;
   finally
      Lista.Free;
      HTTPClient.free;
   end;

 

 

SalvarAtendimento.xml

Postado

descobri o erro
eu estava passando no nome do arquivo para o post e nao as informações do arquivo.
desculpa minha ignorancia, mas peguei para fazer esse projeto para ajudar um cliente e nunca tinha usado estas funções de xmldoc e ixmlnode

agora esta dando o erro em anexo.

 

erro.jpg

SalvarAtendimento.xml

Postado
20 horas atrás, Juliomar Marchetti disse:

Erro 400 é da requisição mal formada

ele tá esperando alguma autenticação ou algo que falta

boa noite
mas onde?
Já refiz o código 10 x

o endereço do post eh esse 'http://integracao.nd.com.br:85/atendimento/SalvarAtendimento'

O local falou que não tem autenticação no lugar

o erro de retorno ta reclamando da linha 1 posição 15

SalvarAtendimento.xml

  • Moderadores
Postado
3 horas atrás, Douglas Morette disse:

boa noite
mas onde?
Já refiz o código 10 x

o endereço do post eh esse 'http://integracao.nd.com.br:85/atendimento/SalvarAtendimento'

O local falou que não tem autenticação no lugar

o erro de retorno ta reclamando da linha 1 posição 15

SalvarAtendimento.xml 2.49 kB · 0 downloads

Qual a documentação do mesmo?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Moderadores
Postado
Em 09/07/2024 at 20:40, Douglas Morette disse:

boa noite
mas onde?
Já refiz o código 10 x

o endereço do post eh esse 'http://integracao.nd.com.br:85/atendimento/SalvarAtendimento'

O local falou que não tem autenticação no lugar

o erro de retorno ta reclamando da linha 1 posição 15

SalvarAtendimento.xml 2.49 kB · 1 download

fui olhar novamente e seu arquivo primeiro tem uma quebra de linha que pode ser que não exista

e a reclamação é da parte que diz respeito a informação do xml version

image.png

em todo o caso se quer algo simples pra gerar o xml olhe esse projeto

https://github.com/viniciussanchez/xml-builder

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 2 semanas depois ...
  • Solution
Postado

Boa noite

O problema estava quando eu mandava o xml, ele nao estava indo em utf8,

achei uma função e coloquei para converter em utf8 e 

essas linhas abaixo ficaram assim

 HTTPClient.Request.ContentType := 'text/xml';
      HTTPClient.Request.Accept := 'text/xml';

resolvido

  • Este tópico foi criado há 125 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...