From: Aaron S. <as...@sw...> - 2000-12-12 14:02:06
|
Brian (bla...@hc...) wrote: > I've grabbed Steve Ball's xmlrpc.tcl package, but I'm not having any luck > getting it to talk to O'Reilly's Meerkat service. I'd really appreciate some > help. > > I've written an extremely simple script <snip /> > I get the following error when i try to execute it: I think there might be a bug or two in the Tcl version. You want to try this version with a few changes: http://source.theinfo.org/myinfo/xmlrpc/xmlrpc.tcl A quick diff is below. Be careful about line breaks. - [ Aaron Swartz | me...@aa... | http://www.aaronsw.com ] --- BEGIN DIFF --- $ diff -cb xmlrpc.tcl xmlrpc.tcl.1 *** xmlrpc.tcl Tue Dec 12 08:56:32 2000 --- xmlrpc.tcl.1 Tue Dec 12 08:57:22 2000 *************** *** 383,389 **** } base64 { # Supply a decoder? - set result [dom::node cget [dom::node cget [dom::node cget $node -firstChild] -firstChild] -nodeValue] } struct { foreach member [dom::node children [dom::node cget $node -firstChild]] { --- 383,388 ---- *************** *** 420,437 **** proc xmlrpc::invoke xml { set data [dom::DOMImplementation parse $xml] - dom::DOMImplementation trim $data ! # set cleanup [list dom::DOMImplementation destroy $data] ! set data [dom::document getElementsByTagName $data methodCall] set methodName [dom::node cget [dom::node cget \ [lindex [dom::document getElementsByTagName $data methodName] 0] \ -firstChild] -nodeValue] set arguments {} ! foreach parameter [dom::document getElementsByTagName \ ! [dom::document getElementsByTagName $data params] \ ! param] { lappend arguments [decodevalue [dom::node cget $parameter -firstChild]] } --- 419,433 ---- proc xmlrpc::invoke xml { set data [dom::DOMImplementation parse $xml] dom::DOMImplementation trim $data ! set cleanup [list dom::DOMImplementation destroy $data] ! set methodName [dom::node cget [dom::node cget \ [lindex [dom::document getElementsByTagName $data methodName] 0] \ -firstChild] -nodeValue] set arguments {} ! foreach parameter [dom::document getElementsByTagName $data param] { lappend arguments [decodevalue [dom::node cget $parameter -firstChild]] } --- END DIFF For Steve, et al: --- BEGIN --- I've written an extremely simple script: package require xmlrpc set meerkat_server "http://www.oreillynet.com/meerkat/xml-rpc/server.php" puts [xmlrpc::call $meerkat_server "meerkat.getChannelsByCategory" -int 2] I get the following error when i try to execute it: XMLRPC_ERROR {remote procedure call failed due to "can't read "": no such variable"} while executing "callresponse $request" (procedure "xmlrpc::call" line 28) invoked from within "xmlrpc::call $meerkat_server "meerkat.getChannelsByCategory" -int 2" (file "meerkat.tcl" line 8) --- END --- from http://www.xmlrpc.com/discuss/msgReader$1119 |