我正在尝试在DOMO中创建自定义连接器以从infusionsoft检索数据。我只能在DOMO IDE中使用普通的javascript。下面的代码是我写给infusionsoft的XML-RPC Api的请求,但我得到了错误代码响应。 DOMO Ide中不支持Xmlhttprequest。
var xml = '<?xml version="1.0" encoding="UTF-8"?>'+
'<methodCall>'+
'<methodName>DataService.query</methodName>'+
'<params>'+
'<param>'+
'<value><string>xxxxxxxxxxxxxxxxxxx</string></value>'+
'</param>'+
'<param>'+
'<value><string>Invoice</string></value>'+
'</param>'+
'<param>'+
'<value><int>1000</int></value>'+
'</param>'+
'<param>'+
'<value><int>0</int></value>'+
'</param>'+
'<param>'+
'<value><struct>'+
'<member><name>Id</name>'+
'<value><string>[1,2,3,4]</string></value>'+
'</member>'+
'</struct></value>'+
'</param>'+
'<param>'+
'<value><array>'+
'<data>'+
'<value><string>Id</string></value>'+
'</data>'+
'</array></value>'+
'</param>'+
'<param>'+
'<value><string>orderBy</string></value>'+
'</param>'+
'<param>'+
'<value><boolean>ascending</boolean></value>'+
'</param>'+
'</params>'+
'</methodCall>';
httprequest.addHeader('Content-Type', 'application/xml');
httprequest.addParameter('xml', xml);
var res = httprequest.post('https://api.infusionsoft.com/crm/xmlrpc/v1?access_token='+metadata.account.accesstoken);
DOMO.log(res)
我得到的回应是:
<?xml version="1.0" encoding="utf-8"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i4>0</i4></value></member><member><name>faultString</name><value>Failed to parse XML-RPC request: Content is not allowed in prolog.</value></member></struct></value></fault></methodResponse>
答案 0 :(得分:0)
&#34;内容不允许在prolog&#34;错误意味着您在XML声明之前传输了一些内容。由于您要将XML正文添加为参数,因此请求将以"xml=" + xml
提交。
只需将xml作为第二个参数传递给post请求。
httprequest.addHeader('Content-Type', 'application/xml');
var res = httprequest.post('https://api.infusionsoft.com/crm/xmlrpc/v1?access_token='+metadata.account.accesstoken, xml);