首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在API请求中添加XML参数

在API请求中添加XML参数
EN

Stack Overflow用户
提问于 2018-10-17 23:21:51
回答 1查看 396关注 0票数 0

使用SoapUI时,我一直有错误,直到我更正了参数(现在我得到了所需的响应)。

根据API文档:

代码语言:javascript
复制
"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中的功能“参数”是:

代码语言:javascript
复制
?callmeasurement_xml_input=<?xml version="1.0" encoding="utf-16"?><callmeasurement username="abc" password="123" api="1111"/>

这是我当前的(不工作的) AppsScript:

代码语言:javascript
复制
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
}
EN

回答 1

Stack Overflow用户

发布于 2020-04-27 04:11:00

应该对XML进行编码并在callmeasurement_xml_input查询参数中传递,而不是将其包装在callmeasurement_xml_input元素中,然后将其发布到有效负载中。

代码语言:javascript
复制
function apiRequest(){

  var rawXML = '<?xml version="1.0" encoding="utf-16"?>'
  + '<callmeasurement username="abc" password="123" api="1111"/>';

  var url = 'http://api.callmeasurement.com/api/dnis_list.cfm'
  + '?callmeasurement_xml_input=' + encodeURIComponent(rawXML);

  var options = {'method': 'POST'};
  var response = UrlFetchApp.fetch(url, options);
  Logger.log(response.getContentText());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52858386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档