【发布时间】:2018-10-17 15:21:50
【问题描述】:
使用 SoapUI,在更正参数之前出现错误(我现在得到了所需的响应)。使用 Apps 脚本时,我遇到了同样的错误,但我似乎无法正确添加 XML 参数,下面的示例是我尝试的最后一种方法。
根据 API 文档:
"Wrap the following XML structure in a variable called 'callmeasurement_xml_input' "
<?xml version="1.0" encoding="UTF-8"?>
<callmeasurement username="abc" password="123" api="1"/>
SoapUI 中起作用的“参数”是:
?callmeasurement_xml_input=<?xml version="1.0" encoding="utf-16"?><callmeasurement username="abc" password="123" api="1111"/>
这是我当前的(不工作的)AppsScript:
function apiRequest(){
var url = 'http://api.callmeasurement.com/api/dnis_list.cfm';
var rawXML = '<callmeasurement_xml_input>'
+ '<?xml version="1.0" encoding="utf-16"?>'
+ '<callmeasurement username="abc" password="123" api="1111"/>'
+ '</callmeasurement_xml_input>';
var options = {
'contentType': 'application/xml',
'method': 'POST',
'payload': rawXML
};
var response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText());
// Returns an error
}
【问题讨论】:
-
您分配给 rawXML 的文本看起来无效。
-
错误是什么?
-
该错误是来自居屋的一般响应。在我正确添加参数之前,这与我在 SoapUI 中收到的响应完全相同。
<h2>An unexpected error occurred.</h2> <p>Please provide the following information to technical support:</p> <p>Error Event: </p> <p>Error details:<br> -
在 SoapUI 中,有一个按钮可以添加带有名称的参数。我将名称设置为“callmeasurement_xml_input”,将参数设置为:“
" 解决了问题并提供了正确的响应(仅限 SoapUI)。我觉得“将以下 XML 结构包装在一个名为 'callmeasurement_xml_input” 的变量中是问题所在。我不确定如何在 Apps 脚本中执行此操作。 -
var rawXML ={ 'callmeasurement_xml_input': '<?xml version="1.0" encoding="utf-16"?>' + '<callmeasurement username="abc" password="123" api="1111"/>' };
标签: xml api soap google-apps-script