🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346149

Re: GUS i httprio - SID w nagłówku http, EDOMParsError. CDATA

#346149
From: J-23
Date: Thu, 02 Nov 2017 15:42
104 lines
6843 bytes
W dniu 02.11.2017 o 11:44, kali - Tomasz Kalinowski pisze:
> Poproszę Was jeszcze jednak o pomoc. Utkwiłem dalej. Aktualnie dane odbieram ale pojawia się wspomniany błąd (po pobraniu danych): EDOMParsError with message 'Nieprawidłowa wartość na najwyższym poziomie dokumentu'
> 
> Co i jak:
> Wysyłana koperta SOAP:
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:To>https://wyszukiwarkaregontest.stat.gov.pl/wsBIR/UslugaBIRzewnPubl.svc</wsa:To> <wsa:Action>http://CIS/BIR/PUBL/2014/07/IUslugaBIRzewnPubl/DaneSzukaj</wsa:Action> </SOAP-ENV:Header><SOAP-ENV:Body><DaneSzukaj xmlns="http://CIS/BIR/PUBL/2014/07"><pParametryWyszukiwania><Nip xmlns="http://CIS/BIR/PUBL/2014/07/DataContract">5420201038</Nip></pParametryWyszukiwania></DaneSzukaj></SOAP-ENV:Body></SOAP-ENV:Envelope>
> 
> Odpowiedź. Dane odbieram w postaci (&lt; &gt; ...):
> 
> <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://CIS/BIR/PUBL/2014/07/IUslugaBIRzewnPubl/DaneSzukajResponse</a:Action></s:Header><s:Body><DaneSzukajResponse xmlns="http://CIS/BIR/PUBL/2014/07"><DaneSzukajResult>&lt;root&gt;&#xD;
>    &lt;dane&gt;&#xD;
>      &lt;Regon&gt;05002589200000&lt;/Regon&gt;&#xD;
>      &lt;RegonLink&gt;&amp;lt;a href='javascript:danePobierzPelnyRaport("05002589200000","DaneRaportPrawnaPubl", 0);'&amp;gt;050025892&amp;lt;/a&amp;gt;&lt;/RegonLink&gt;&#xD;
>      &lt;Nazwa&gt;MPO SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ&lt;/Nazwa&gt;&#xD;
>      &lt;Wojewodztwo&gt;PODLASKIE&lt;/Wojewodztwo&gt;&#xD;
>      &lt;Powiat&gt;m. Białystok&lt;/Powiat&gt;&#xD;
>      &lt;Gmina&gt;M. Białystok&lt;/Gmina&gt;&#xD;
>      &lt;Miejscowosc&gt;Białystok&lt;/Miejscowosc&gt;&#xD;
>      &lt;KodPocztowy&gt;15-950&lt;/KodPocztowy&gt;&#xD;
>      &lt;Ulica&gt;ul. Test-Krucza&lt;/Ulica&gt;&#xD;
>      &lt;Typ&gt;P&lt;/Typ&gt;&#xD;
>      &lt;SilosID&gt;6&lt;/SilosID&gt;&#xD;
>    &lt;/dane&gt;&#xD;
> &lt;/root&gt;</DaneSzukajResult></DaneSzukajResponse></s:Body></s:Envelope>
> 
> 
> I otrzymuje błąd j.w. Więc podmieniam Response w HTTPRIO1AfterExecute:
> 
> procedure TForm1.HTTPRIO1AfterExecute(const MethodName: string;
>    SOAPResponse: TStream);
> var  sl: tstringlist;
> data:string;
> begin
> if operacja='DaneSzukaj' then
> begin
> //showmessage('tu');
>    Memo1.Lines.Add(' ______________________________________');
>    Memo1.Lines.Add('Resopnse: '+MethodName);
>    sl:=TStringList.Create;
> 
>    SOAPResponse.Position:=0;
>    with TStringStream.Create('') do
>    try
>      CopyFrom(SOAPResponse, SOAPResponse.Size - SOAPResponse.Position);
>      data:= DataString;
>      Data:=StringReplace(Data,'&amp;','&',[RfReplaceAll]);
>      Data:=StringReplace(Data,'&lt;','<',[RfReplaceAll]);
>      Data:=StringReplace(Data,'&gt;','>',[RfReplaceAll]);
>      Data:=StringReplace(Data,'&#xD;','',[RfReplaceAll]);
> //    Data:=StringReplace(Data,'<DaneSzukajResult>','<DaneSzukajResult><![CDATA[',[RfReplaceAll]);
> //    Data:=StringReplace(Data,'</root>','</root>]]>',[RfReplaceAll]);
> 
>      sl.Add(data);
> 
>      SOAPResponse.Size := 0;
>      SOAPResponse.Position := 0;
>      sl.SaveToStream(SOAPResponse);
>      Data:=UTF8ToWideString(Data);
>      Memo1.Lines.Add(data);
>    finally
>      Free;
>    end;
> end;
> 
> 
> Oczywiście wtedy odpowiedź jest czytelniejsza (+UTF8ToWideString):
> 
> <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://CIS/BIR/PUBL/2014/07/IUslugaBIRzewnPubl/DaneSzukajResponse</a:Action></s:Header><s:Body><DaneSzukajResponse xmlns="http://CIS/BIR/PUBL/2014/07"><DaneSzukajResult><root>
>    <dane>
>      <Regon>05002589200000</Regon>
>      <RegonLink><a href='javascript:danePobierzPelnyRaport("05002589200000","DaneRaportPrawnaPubl", 0);'>050025892</a></RegonLink>
>      <Nazwa>MPO SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ</Nazwa>
>      <Wojewodztwo>PODLASKIE</Wojewodztwo>
>      <Powiat>m. Białystok</Powiat>
>      <Gmina>M. Białystok</Gmina>
>      <Miejscowosc>Białystok</Miejscowosc>
>      <KodPocztowy>15-950</KodPocztowy>
>      <Ulica>ul. Test-Krucza</Ulica>
>      <Typ>P</Typ>
>      <SilosID>6</SilosID>
>    </dane>
> </root></DaneSzukajResult></DaneSzukajResponse></s:Body></s:Envelope>
>


Na moje oko to nie pobierasz pełnego XML

zamykasz </s:Body> ale nigdzie go nie pobierasz stąd debugger krzyczy ze 
w linii 215 masz błąd

To co piszę to są tylko moje przypuszczenia na podstawie kodu który tu 
zamiesciłeś - nie musi mieć to nic wspólnego z twoim problemem ale ja 
bym zaczął od tego


> jednak błąd nadal się pojawia. Dodawałem więc znaczniki CDATA: Mimo to, ciągle to samo:
> EDOMParsError:
> Line: 215 </root>]]></DaneSzukajResult></DaneSzuka'. (tak, brak j>)
> Debuger zatrzymuje program w Xml.XMLDoc w procedurze LoadData w tym miejscu:
> 

Pozdrawiam
J-23
Technical Details
Message-ID: <59fb3cd9$0$15193$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer01.am4!peer.am4.highwinds-media.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <1f0e00a9-2a79-4683-bce9-7f12abcb551d@googlegroups.com> <0ffb26e4-ce45-4b95-9aef-18dd56465bf4@googlegroups.com> <899c467c-dd0d-4a65-aaba-5d3714558ca1@googlegroups.com> <90312a1c-ef7e-4e9d-bfe7-91a253036b12@googlegroups.com> <dy148590jagb$.dlg@tyczka.com> <2ffd6599-8a1a-419a-bad6-8abfade1aeab@googlegroups.com> <90dda74f-b7c1-4b1e-93f0-18b671409ff5@googlegroups.com> <c426c356-863e-4ad1-a093-859e9ec067cd@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer01.am4!peer.am4.highwinds-media.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: GUS i httprio - SID w nagłówku http,
 EDOMParsError. CDATA
Newsgroups: pl.comp.lang.delphi
References: <1f0e00a9-2a79-4683-bce9-7f12abcb551d@googlegroups.com> <0ffb26e4-ce45-4b95-9aef-18dd56465bf4@googlegroups.com> <899c467c-dd0d-4a65-aaba-5d3714558ca1@googlegroups.com> <90312a1c-ef7e-4e9d-bfe7-91a253036b12@googlegroups.com> <dy148590jagb$.dlg@tyczka.com> <2ffd6599-8a1a-419a-bad6-8abfade1aeab@googlegroups.com> <90dda74f-b7c1-4b1e-93f0-18b671409ff5@googlegroups.com> <c426c356-863e-4ad1-a093-859e9ec067cd@googlegroups.com>
From: J-23 <Baczeklu@poczta.fm>
Date: Thu, 2 Nov 2017 16:42:16 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0
MIME-Version: 1.0
In-Reply-To: <c426c356-863e-4ad1-a093-859e9ec067cd@googlegroups.com>
Lines: 104
Message-ID: <59fb3cd9$0$15193$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 188.146.109.27
X-Trace: 1509637337 unt-rea-a-02.news.neostrada.pl 15193 188.146.109.27:61304
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Body-CRC: 3558713007
X-Received-Bytes: 6792
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit