Bir SOAP hizmetinden ilgili bilgileri, Hollanda hükümeti kayıt defterinden (WSDL here) PySimpleSoap ile almaya çalışıyorum.SOAP isteğinde TypeError (pysimplesoap kullanarak)
from pysimplesoap.client import SoapClient
client = SoapClient(wsdl='http://www1.kadaster.nl/1/schemas/kik-inzage/20141101/verzoekTotInformatie-2.1.wsdl', username='xxx', password='xxx', trace=True)
response = client.VerzoekTotInformatie(
Aanvraag={
'berichtversie': '4.7', # Refers to the schema version
'klantReferentie': klantReferentie, # A reference we can set ourselves.
'productAanduiding': '1185', # a four-digit code referring to whether the response should be in "XML" (1185), "PDF" (1191) or "XML and PDF" (1057).
'Ingang': {
'Object': {
'IMKAD_KadastraleAanduiding': {
'gemeente': 'ARNHEM AC', # municipality
'sectie': 'AC', # section code
'perceelnummer': '1234' # Lot number
}
}
}
}
)
Bu "tür" çalışır: Şimdiye kadar bağlanıp aşağıdaki kodla belirli özellik hakkında bilgi istemek başardı. trace=True
'u ayarlıyorum, böylece kapsamlı günlük mesajları alıyorum ve bu günlük mesajlarında, istediğim tüm bilgileri içeren çok fazla xml çıkışı (paste here) görüyorum. ANCAK, ben de bu Traceback olsun:
Traceback (most recent call last):
File "<input>", line 1, in <module>
'perceelnummer': perceelnummer
File "/Library/Python/2.7/site-packages/pysimplesoap/client.py", line 181, in <lambda>
return lambda *args, **kwargs: self.wsdl_call(attr, *args, **kwargs)
File "/Library/Python/2.7/site-packages/pysimplesoap/client.py", line 346, in wsdl_call
return self.wsdl_call_with_args(method, args, kwargs)
File "/Library/Python/2.7/site-packages/pysimplesoap/client.py", line 372, in wsdl_call_with_args
resp = response('Body', ns=soap_uri).children().unmarshall(output)
File "/Library/Python/2.7/site-packages/pysimplesoap/simplexml.py", line 433, in unmarshall
value = children and children.unmarshall(fn, strict)
File "/Library/Python/2.7/site-packages/pysimplesoap/simplexml.py", line 433, in unmarshall
value = children and children.unmarshall(fn, strict)
File "/Library/Python/2.7/site-packages/pysimplesoap/simplexml.py", line 433, in unmarshall
value = children and children.unmarshall(fn, strict)
File "/Library/Python/2.7/site-packages/pysimplesoap/simplexml.py", line 380, in unmarshall
raise TypeError("Tag: %s invalid (type not found)" % (name,))
TypeError: Tag: IMKAD_Perceel invalid (type not found)
Bildiğim kadarıyla anladığım kadarıyla, bu IMKAD_Perceel
etiketi (Ben tahmin ediyorum) simplexml parser tarafından anlaşılamaz demektir bu tanım bulmak/okuyamadı çünkü Bu etiketin wdsl dosyasında.
DEBUG:pysimplesoap.helpers:Parsing Element element: IMKAD_Perceel
DEBUG:pysimplesoap.helpers:Processing element IMKAD_Perceel element
DEBUG:pysimplesoap.helpers:IMKAD_Perceel has no children!
DEBUG:pysimplesoap.helpers:complexContent/simpleType/element IMKAD_Perceel = IMKAD_Perceel
DEBUG:pysimplesoap.helpers:Parsing Element complexType: IMKAD_Perceel
DEBUG:pysimplesoap.helpers:Processing element IMKAD_Perceel complexType
DEBUG:pysimplesoap.helpers:complexContent/simpleType/element IMKAD_Perceel = IMKAD_OnroerendeZaak
DEBUG:pysimplesoap.helpers:Processing element IMKAD_Perceel complexType
Ben bu satırlar
IMKAD_Perceel
tanımı boş olduğu anlamına sanırım.
<xs:element name="IMKAD_Perceel"
substitutionGroup="ipkbo:IMKAD_OnroerendeZaak"
type="ipkbo:IMKAD_Perceel"
/>
etiketi gerçekten kendini yaklaşıyor gibi görünüyor, bu boş olduğu anlamına gelir: Ben hangi ı IMKAD_Perceel
tanımını bulmak ben an url to this .xsd-file bulduğu, the WSDL file iç gözlem SoapUI kullandı. Bu, pysimplesoap'ın IMKAD_Perceel
'un tanımlanmadığını düşünmesinin sebebi midir? Neden sadece xml'yi yorumlayamaz ve bir dict olarak geri gönderemez? (Daha önce de söylediğim gibi, aldığım tam xml çıktısı this paste).
Herhangi bir kimse, psi zihnini yorumlayabileceğimi ve xsdl'e uyup uymadığına bakmadan nasıl bir dict'e dönüştürdüğümü biliyor mu?
Tüm ipuçları kabul edilir!
Bu hizmeti kullanma yetkimiz olmadığı için hatayı yeniden oluşturamıyoruz. Bu web servis sağlayıcısına başvurmanızın daha iyi olacağını düşünüyorum. – skyline75489
@ skyline75489 - Geri aldığım xml'nin bir macunu ekledim: http://pastebin.com/eamQzGSt. Bu hata ayıklamaya yardımcı olur mu? – kramer65
Aldığınız yanıt Tamam görünüyor, hatta "tip hatası" dan şikayet ediyor. Yanıtla ilgili bir sorun var mı? – skyline75489