Post Action Processes XML-RPC requests using sjs

Parameters

Post Data

Usage:

-Example-




Server Side Javascript for POST method

post.sjsformBased = transaction.getParameter("formBased"); try{ if(formBased!=null && formBased=="true") { transaction.getPostData(); xmlData = transaction.getPostParameter("xml"); } else { transaction.getRawPostData(); xmlData = transaction.getPostParameter("data"); } } catch(e) { file.saveAttachment( "/OpenForum/Actions/XML-RPC","exception.txt",e ); transaction.sendPage(e); return; } file.saveAttachment( "/OpenForum/Actions/XML-RPC","request.xml",xmlData ); xmlDoc = js.getStringAsXml( xmlData ); methodName = xmlDoc.getElementByName("methodName").getValue(); methodCall = methodName+"("; params = xmlDoc.getElementByName("params"); for(loop=0;loop<params.getElementCount();loop++) { param = params.getElementByIndex(loop).getElementByName("value").getElementByIndex(0); if(loop>0) { methodCall += ","; } if(param.getName().equals("string")) { methodCall += "\""+param.getValue()+"\""; } } methodCall += ");"; try{ resultValue = eval(methodCall); } catch(e) { transaction.sendPage(e); return; } resultXml = js.getStringAsXml("<methodResponse/>"); value = resultXml.addChild("params").addChild("param").addChild("value").addChild("string"); value.setValue(resultValue); transaction.sendPage( "<?xml version=\"1.0\"?>\n"+resultXml.toXml() );