Using xmlrpc-client.lsp...
Posted: Sat Jan 09, 2016 1:17 pm
Hi!
I ran into a little problem when using %xmlrpc-client.lsp with our python/django XMLRPC server at work. It has a very strict interpretation of how many arguments it will accept for certain functions, like system.listMethods, so the default request with the single dummy argument won't work.
I wound up adding something like this to xmlrpc-client.lsp:
Then changing system.listMethods to:
Technically, format-request should also determine the type of the argument values (and encode lists and dictionaries correctly), but if you're only using string arguments, it should suffice.
Maybe someone has a better format-request they could share? ; - )
I ran into a little problem when using %xmlrpc-client.lsp with our python/django XMLRPC server at work. It has a very strict interpretation of how many arguments it will accept for certain functions, like system.listMethods, so the default request with the single dummy argument won't work.
I wound up adding something like this to xmlrpc-client.lsp:
Code: Select all
(define (format-request method)
"( method /arg.../ -- XML) Compose XML request."
(let ((xml (format
"<?xml version=\"1.0\"?><methodCall><methodName>%s</methodName><params>"
method)))
(dolist (value (args))
(push (format "<param><value>%s</value></param>" value) xml -1))
(push "</params></methodCall>\n" xml -1)))
Code: Select all
(define (system.listMethods url)
(execute url (format-request "system.listMethods")))
Maybe someone has a better format-request they could share? ; - )