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