Soap API错误-不正确的类型

Soap API error - incorrect type?

本文关键字:类型 不正确 API 错误 Soap      更新时间:2023-09-26

我目前正在尝试使用在我的浏览器中工作良好的API -我的代码如下:

function getHistory() {
  var wsdl = SoapService.wsdl("http://zulutrade.com/WebServices/Performance.asmx?WSDL");
  var performanceService = wsdl.getService("PerformanceWebService");
  var param = Xml.element("GetProviderTrades", [
                Xml.attribute("xmlns", "ZuluTrade.WebServices"),
                Xml.element("length",["100"]),
                Xml.element("sortBy",["dc"]),
                Xml.element("sortAscending",[false]),
                Xml.element("providerId",["24508"]),
                Xml.element("currencyIds",["[]"]),
                Xml.element("fromDateStr",["1984-04-24"]),
                Xml.element("toDateStr",["2011-09-10"]),
                Xml.element("validTrades",[true]),
                Xml.element("lotSize",["2"])
              ]);
  //var envelope = performanceService.getSoapEnvelope("GetProviderTrades", param)
  //Logger.log(envelope);
  var result = performanceService.GetProviderTrades(param);
  Logger.log(result);
}

这看起来正在连接到服务,但正在生成错误:

请求http://zulutrade.com/WebServices/Performance.asmx失败,返回代码500。服务器响应:soap:ClientServer无法读取请求。——比;XML文档(1,640)中有一个错误。——比;实例验证错误:'2'不是LotSize的有效值。(第26行)

为了设置每个参数,我在访问页面时复制了Chrome开发人员工具的有效载荷(转到http://www.zulutrade.com/TradeHistoryIndividual.aspx?pid=24508并更改可见交易的数量,同时查看XHR请求以查看有效载荷)。由于我将lotSize设置为2,根据浏览器请求中的有效负载,我希望这能工作,但显然没有。

查看http://zulutrade.com/WebServices/Performance.asmx?WSDL上的模式,可以看到lotSize的以下内容:

<s:element minOccurs="1" maxOccurs="1" name="lotSize" type="tns:LotSize"/>

这看起来像它的类型tns:LotSize -这是为什么我得到错误?如果是,我如何在请求中传递这种类型的东西?

谢谢!

从WSDL中可以看到

<s:simpleType name="LotSize">
    <s:restriction base="s:string">
        <s:enumeration value="Micro"/>
        <s:enumeration value="Mini"/>
        <s:enumeration value="Standard"/>
    </s:restriction>
</s:simpleType>

所以lotSize可以是

Xml.element("lotSize","Mini") // 2nd value, instead of ["2"]