Versuchen, einen SOAP-Aufruf mit Python Suds zu machen. Es importiert die WSDL-Strafe, und der Client, den es erzeugt, sieht gut aus, aber ich kann nicht auf die Methoden zugreifen.Aufrufen von SOAP-Methoden mit Punkten im Namen mit Python/Suds
Die Suds documentation beschreibt die Methode wie folgt bezeichnet:
client.service.Company.GetQueue()
Aber alles, was ich mit jeder Variation dieses erhalten ist:
suds.MethodNotFound: Methode nicht gefunden: 'OmnitureWebService.OmnitureWebServicePort.Company'
Hier ist die Variable Dump des Clients, den ich erstellt habe. Sie können sehen, dass die Methoden vorhanden sind, aber wie kann ich darauf zugreifen? Ich habe versucht, den Port zu spezifizieren, Präfixe zu spezifizieren, nichts scheint zu arbeiten. Danke für jede Hilfe mit diesem.
> obj._ServiceSelector__client = Suds (
> https://fedorahosted.org/suds/)
> version: 0.4 GA build: R699-20100913
>
> Service (OmnitureWebService)
> tns="http://www.omniture.com/"
> Prefixes (2)
> ns0 = "http://schemas.xmlsoap.org/soap/encoding/"
> ns1 = "http://www.omniture.com/" Ports (1):
> (OmnitureWebServicePort)
> Methods (173):
> CodeManager.DeleteCodeArchive(xs:int
> archive_id,)
> CodeManager.GenerateCode(xs:string
> char_set, xs:string code_type, xs:int
> cookie_domain_periods, xs:string
> currency_code, xs:string rsid, xs:int
> secure,)
> CodeManager.GetCodeArchives(int_array
> archive_id_list, xs:string
> binary_encoding, xs:int
> populate_code_items,)
> CodeManager.SaveCodeArchive(xs:string
> archive_description, xs:int
> archive_id, xs:string archive_name,
> code_items code,)
> Company.CancelQueueItem(xs:int qid,)
> Company.DownloadProduct(productType
> productType,)
> Company.GetEndpoint(xs:string company,
>)
> Company.GetQueue()
> Company.GetReportSuites(string_array
> rs_types, xs:string sp,)
> Company.GetTokenCount()
> Company.GetTokenUsage()
> Company.GetTrackingServer(xs:string
> rsid,)
> Company.ResetTokenCount(xs:string
> auth_key,)
wowowow. Ich habe das seit Tagen versucht. netter Fund und danke für den Beitrag – JiminyCricket
@JiminyCricket Danke. Ich hoffe, dass kfed das als Antwort akzeptiert. Ich bin mir nicht sicher, ob es einen besseren Weg gibt, dies zu tun, ohne die WSDL zu bearbeiten. – FlipMcF