mac를 Python 2.7.5 및 suds == 0.4와 함께 사용SUDS가 SOAP 서비스를 사용하는 파일 헤더의 SAXParseException - 비누를 올바르게 소비하는 방법?
wdsl을 사용하여 SOAP 웹 서비스를 사용하기 위해 suds (처음으로)를 사용하고 있습니다. 구문 분석에 실패 할 때 XML 원시를 요청할 때 응답에 대해 혼란스러워합니다. 내가 파이썬 객체에 파싱하지 않고 XML을 반환하도록 클라이언트를 설정
SAXParseException: <unknown>:2:43: not well-formed (invalid token)
:
from suds.client import Client
from datetime import datetime
client = Client('http://domeintabellen-idsw-ws.rws.nl/DomainTableWS.svc?wsdl')
request = client.factory.create('ns1:GetDomainTableNamesRequest')
today = datetime.today()
request.CheckDate = today
result = client.service['basic'].GetDomainTableNames(request)
이 나에게 오류를 제공 내가 수익을 얻을
client.set_options(retxml=True)
있는 내가 할 수있는 수동으로 구문 분석합니다. 그러나 "제대로 작동하고"문제가 무엇인지 더 잘 이해하고 싶습니다.
반환되는 XML은 다음과 같으며 일부 헤더가있는 것으로 보입니다. 각 요청 후에 uuid의 + id가 올라 갔음을 발견했습니다.
--uuid:1d4b4778-364c-4743-8eb3-d72a1e3f7747+id=28
Content-ID: <http://tempuri.org/0>
Content-Transfer-Encoding: 8bit
Content-Type: application/xop+xml;charset=utf-8;type="text/xml"
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetDomainTableNamesResponse xmlns="http://rws.services.nl/DomainTableWS/2010/10"><GetDomainTableNamesResult xmlns:a="http://rws.services.nl/DomainTableWS/Contracts/2010/10" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:DomainTableNames><a:string>Aanduiding_naamgebruik</a:string><a:string>Aanslag_type</a:string><a:string>Aanvoereenheid_soorten</a:string><a:string>Aanvoergebied_soorten</a:string><a:string>Aanwezig_afwezig_onbekend</a:string><a:string>Academische_titel</a:string><a:string>Adellijke_titel_of_predikaat</a:string><a:string>Afleveringspunt_soorten</a:string><a:string>Afsluitwijzen</a:string><a:string>Afvoergebied_soorten</a:string><a:string>Afwateringseenheid_soorten</a:string><a:string>AtRisktype</a:string><a:string>BBP_beheerproduct</a:string><a:string>BBP_beleidsproduct</a:string><a:string>Bedrijfstakken_WVOW</a:string><a:string>Beheersvormen_waterkering</a:string><a:string>Belastingsoorten</a:string><a:string>Bemalen_of_vrij_verval</a:string><a:string>Bemonsteringsapparaat</a:string><a:string>Bemonsteringsmethode</a:string><a:string>Bemonsteringssoort</a:string><a:string>Beoordeling_schade</a:string><a:string>BeschermdGebiedtype</a:string><a:string>Bestemmingen_afvalwater</a:string><a:string>Besturingswijze</a:string><a:string>Bevaarbaarheidsklassen</a:string><a:string>BevoegdGezagSoort</a:string><a:string>Beweegbare_bruggen</a:string><a:string>Biotaxon</a:string><a:string>Boomhoogte</a:string><a:string>Brander</a:string><a:string>CEFILT</a:string><a:string>ClassificatieCIW</a:string><a:string>ClassificatieKRWGW</a:string><a:string>ClassificatieKRWbiologischOW</a:string><a:string>ClassificatieKRWchemischOW</a:string><a:string>Code_stroomrichting</a:string><a:string>Code_sturing</a:string><a:string>Compartiment</a:string><a:string>Correspondentie_soorten</a:string><a:string>Detailonderdeel_bijzondere_weglaag</a:string><a:string>Detailplaats_lijnmarkering</a:string><a:string>DoelMeetLocatieType</a:string><a:string>Doelen_baggerwerkzaamheden</a:string><a:string>Doelen_voor_metingen</a:string><a:string>Doorspoelbaarheid</a:string><a:string>Drainerende_werking</a:string><a:string>Druk</a:string><a:string>Drukklassen</a:string><a:string>EBEOkarakteristiek</a:string><a:string>EUfonds</a:string><a:string>Ecologische_verbindingszone_soort</a:string><a:string>Eenheden_voor_precario</a:string><a:string>Eenheid</a:string><a:string>Effecttype</a:string><a:string>Eindbeeld_boomvakdeel</a:string><a:string>Eindbestemmingen_baggerspecie</a:string><a:string>EmissieBrontype</a:string><a:string>Energielevering_soorten</a:string><a:string>FunctieKunstwerk</a:string><a:string>Functies_van_adressen</a:string><a:string>Functies_vastgoedelementen_en_gebieden</a:string><a:string>Gebouwd_onbebouwd</a:string><a:string>Gebruikscodes_objecten</a:string><a:string>Geografische_schalen</a:string><a:string>Graderingen_filterlaag</a:string><a:string>Gras_beheervorm</a:string><a:string>Gras_soorten</a:string><a:string>Groenbeheerniveau</a:string><a:string>Groentype</a:string><a:string>Grondmechanische_aspect_soorten</a:string><a:string>Grondslagen</a:string><a:string>Grootheid_dummy</a:string><a:string>Heffingsobject_soorten</a:string><a:string>Hoedanigheid</a:string><a:string>IWSRindicator</a:string><a:string>Inrichtingtype</a:string><a:string>J_N_of_onbekend</a:string><a:string>J_of_N</a:string><a:string>KRWKwaliteitselement</a:string><a:string>KRWMaatregelGebiedsniveau</a:string><a:string>KRWMaatregeltype</a:string><a:string>KRWMeetLocatietype</a:string><a:string>KRWStatus</a:string><a:string>KRWStroomgebiedsdistrict</a:string><a:string>KRWWatertype</a:string><a:string>KRWhydromorfologische_parameter</a:string><a:string>Kabel_en_leiding_soorten</a:string><a:string>Koppelstuk_soorten</a:string><a:string>Kunstwerktype</a:string><a:string>Kwaliteitsoordeel</a:string><a:string>L_R_B</a:string><a:string>Leidingdeel_soorten</a:string><a:string>LocatietypeWaardeBepaling</a:string><a:string>Lozingsvoorziening_soorten</a:string><a:string>Materialen_voor_afvalwatertransportwerken</a:string><a:string>Materialen_voor_bekleding_waterkering_of_profiel</a:string><a:string>Materialen_voor_kunstwerken</a:string><a:string>Materialen_voor_leidingen</a:string><a:string>Materialen_voor_profielverdedigingen</a:string><a:string>Meetapparaat</a:string><a:string>Meetinstantie</a:string><a:string>Meting</a:string><a:string>Monsterbewerkingsmethode</a:string><a:string>Normgroep</a:string><a:string>Normkader</a:string><a:string>NoseCodetype</a:string><a:string>Onderzoekssoort</a:string><a:string>Onttrekkingsvoorziening_soorten</a:string><a:string>Onttrekkingtype</a:string><a:string>Opmerking_weglaag</a:string><a:string>OppervlakteCategorieStoomgebiedtype</a:string><a:string>Orgaan</a:string><a:string>Overige_vastgoedelement_soorten</a:string><a:string>Parameter</a:string><a:string>Plaatsbepalingsapparaat</a:string><a:string>Processen_RWZI</a:string><a:string>Processen_SVI</a:string><a:string>Processen_transportstelsel</a:string><a:string>Profiellijn_soorten</a:string><a:string>RWZI_soorten</a:string><a:string>Rechtsvormen_bedrijf</a:string><a:string>RedenGebruikLocatie</a:string><a:string>RichtlijnType</a:string><a:string>Rioleringselementen</a:string><a:string>Rioolstelsel_soorten</a:string><a:string>SGBPTitel</a:string><a:string>Scheepvaartteken</a:string><a:string>Soort_zorgplicht_voor_bomen</a:string><a:string>Staat</a:string><a:string>Stuw_soorten</a:string><a:string>Subject_rollen</a:string><a:string>Substraattype</a:string><a:string>TijdDimensietype</a:string><a:string>Tijdelijke_kroon</a:string><a:string>Vaarweg_soorten</a:string><a:string>Veer_typen</a:string><a:string>Verkeersvoorziening_boomvakdeel</a:string><a:string>Vormen</a:string><a:string>Waardebepalingsmethode</a:string><a:string>Waardebepalingstechniek</a:string><a:string>Waardebewerkingsmethode</a:string><a:string>Waarnemingssoort</a:string><a:string>WaterTypeKwantitatief</a:string><a:string>Waterbeheerder</a:string><a:string>Waterbeheergebiedtype</a:string><a:string>Waterkeringtype</a:string><a:string>Waterrijkheidtype</a:string><a:string>Waterstaatkundigezonering</a:string><a:string>WatertypeKwalitatief</a:string><a:string>WegAardtype</a:string><a:string>WetVerordeningtype</a:string><a:string>Zuivering_soorten</a:string><a:string>ZwemplekVoorzieningen</a:string></a:DomainTableNames></GetDomainTableNamesResult></GetDomainTableNamesResponse></s:Body></s:Envelope>
--uuid:1d4b4778-364c-4743-8eb3-d72a1e3f7747+id=28--
이것은 반환 된 문자열과 구문 분석 된 문자열입니다. 비눗물에 당신은 당신의 응답을 테스트하기 위해 메시지를 삽입 할 수 있습니다
response = \
"""<enter message here>""""
result = client.service['basic'].GetDomainTableNames(__inject={'reply':response})
그래서 나는 UUID 및 콘텐츠 헤더없이 XML 문자열에 던져 버리고 그냥 잘 구문 분석. 그러나 그것으로부터 + id를 제거하는 것과 같은 uuid를 사용하여 엉망으로 만들려고 시도했지만 파싱되지 않습니다. 여기 내가 잃어버린 곳이있다. 인코딩 문제가 있다고 생각하지 않습니다. 나는 파싱 오류가 XML 파일의 헤더에 의한 것이라고 가정합니다.
원시 xml을 요청할 때 이러한 헤더가 정상적인 것으로 가정합니다.
해당 uuid의 + 기호가 실패합니까? 그렇다면 왜?
어떻게 비누를 사용하여 구문 분석합니까? 아니면 다른 도서관에 가야합니까?
감사합니다.
나는 또한 soapui로 시도했다. 그러나 정확하게 오류를 찾을 수 없습니다. 하지만 질문에는 'xmlns = "http://rws.services.nl/DomainTableWS/2010/10"과 같은 URL이 있습니다. 그것이 필요한지는 알 수 없지만 호스트는 알 수 없습니다. –
나는 실제로 이번 주말 soapui도 시도했지만 아직 질문을 업데이트하지는 않았다. soapui에 오류가 없습니다. 오류가 발생하면 오류도 발생합니다. – Klodder