rafaero23 Novato
Registrado: Quinta-Feira, 16 de Junho de 2011 Mensagens: 4
|
Enviada: Qui Ago 02, 2012 3:23 pm Assunto: 400 - Bad Request/Multiple root elements - WebService Nfse |
|
|
Olá,
Estou verificando, mais especificadamente com a prefeitura de Blumenau, que, pelo que vi até agora, utiliza as mesmas regras que São Paulo. Utilizo Delphi, importei o wsdl e utilizo o componente RIO.
No evento onBeforeExecute do THTTPRIO, vem MethodName e SOAPRequest. Neste SOAPRequest é onde vejo o que, exatamente, estou enviando para o webservice.
Está acontecendo o seguinte:
No primeiro momento, o SOAPRequest vem com um padrão de empacotamento (SOAP-ENV:Envelope), e o resto do cabeçalho certinho, abrindo "<" e fechando ">" corretamente. Porém, dentro da tag <MensagemXML>, que é onde eu informo previamente na chamada do serviço TesteEnvioLoteRPS do wsdl os dados correspondentes ao RPS, alguns caracters foram substituidos, como, "<" por "<", ">" por ">".
Se deixo desta forma, recebo o erro: "There are multiple root elements. Line 1, position 298", sendo que nesta posição não tem nada errado.
Bom, pra resolver isto, fiz:
Código: | SOAPRequest:=StringReplace(SOAPRequest,'>','>',[rfReplaceAll]);
SOAPRequest:=StringReplace(SOAPRequest,'<','<',[rfReplaceAll]);
|
Como o SOAPRequest vem com um var na frente, acredito que é esta widestring que o HTTPRio vai enviar para o webservice.
Bom, mas mesmo assim, quando faço o código acima, recebo o seguinte erro: "bad request (400) - 'https://nfse.blumenau.sc.gov.br/ws/lotenfe.asmx'".
Já fiz a atualização do wsdl importer do delphi, já tentei em 3 máquinas diferentes, mas, nada funciona. Se quiserem, eu posto o xml das duas situações aqui.[/code] |
|