Ich schreibe einen xmlrpc-Client, der einen in Ruby geschriebenen Server verwendet. Eine der Funktionen ist framework.busy?(). Lassen Sie mich die Ruby-Version anzeigen:mit Sonderzeichen in Funktionen: Python
server.call("framework.busy?")
lässt So nehme ich eine Instanz der Klasse ServerProxy sagen Server erstellen. Also, während Python verwenden, um die Funktion anzurufen, beschäftigt? Ich brauche zu verwenden:
server.framework.busy?()
Dies führt zu einem Fehler:
SyntaxError: invalid syntax
Wie kann ich diese Funktion aufrufen? Oder lese ich den Ruby-Code falsch und implementiere ihn falsch.
Sie sind richtig, dass 'beschäftigt?' ist kein gültiger xml-rpc-Methodenname. Die Spezifikation (unter http://www.xmlrpc.com/spec) besagt: "Die muss ein Unterelement enthalten, eine Zeichenfolge, die den Namen der aufzurufenden Methode enthält. Die Zeichenfolge darf nur Bezeichnerzeichen enthalten. Groß- und Kleinbuchstaben AZ, die numerischen Zeichen, 0-9, Unterstrich, Punkt, Doppelpunkt und Schrägstrich. Es liegt ganz bei dem Server zu entscheiden, wie die Zeichen in einem methodName interpretiert werden. " –
Duncan
Das bedeutet, dass diese Antwort immer noch nützlich sein sollte, um Methoden aufzurufen, die einen Punkt, Doppelpunkt und Schrägstrich in ihren Namen haben. – jsbueno
Ja, ich habe mit dem Programmierer gesprochen und er hat die Methodennamen im Server geändert. Danke für die Antworten. – satran