Article View: pl.comp.lang.delphi
Article #346149Re: GUS i httprio - SID w nagłówku http, EDOMParsError. CDATA
From: J-23
Date: Thu, 02 Nov 2017 15:42
Date: Thu, 02 Nov 2017 15:42
104 lines
6843 bytes
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 (< > ...):
>
> <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>&lt;a href='javascript:danePobierzPelnyRaport("05002589200000","DaneRaportPrawnaPubl", 0);'&gt;050025892&lt;/a&gt;</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>
>
>
> 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,'&','&',[RfReplaceAll]);
> Data:=StringReplace(Data,'<','<',[RfReplaceAll]);
> Data:=StringReplace(Data,'>','>',[RfReplaceAll]);
> Data:=StringReplace(Data,'
','',[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-mailReferences:
<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