【发布时间】:2011-09-11 13:47:07
【问题描述】:
我目前正在尝试使用在我的浏览器中运行良好的 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 类型 - 这就是我收到错误的原因吗?如果是这样,我怎样才能在我的请求中传递这种类型的东西?
谢谢!
【问题讨论】:
标签: javascript jquery api soap