从脚本使用Soap API时出错

我目前有一个脚本,我试图访问一个在我的浏览器中工作正常的API(导航到http://zulutrade.com/TradeHistoryIndi​​vidual.aspx?pid=24508通过在开发人员中查看XHR请求来查看它更改交易历史记录中可见交易数量时的工具。

我的代码如下:

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", "http://zulutrade.com/WebServices/Performance.asmx?WSDL"), Xml.element("start",["0"]), 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 result = performanceService.invokeOperation("GetProviderTrades", [param]); Logger.log(result); } 

我已经从我在浏览器中看到的有效负载数据中复制了参数,但是我收到以下错误:

http://zulutrade.com/WebServices/Performance.asmx请求失败,返回代码500.服务器响应:soap:ServerServer无法处理请求。 —>生成XML文档时出错。 —> f__AnonymousTypee`2 [System.Int32,ZT []]无法序列化,因为它没有无参数构造函数。 (第21行)

任何人都可以解释我做错了什么吗? 我是否需要提供某种标题数据(可能是cookie或其他内容)?

谢谢!

.NET XmlSerializer需要一个无参数构造函数用于您要求它序列化/反序列化的任何类型,因此如果您使用没有默认构造函数作为参数的C#类或.asmx Web服务的返回值,则会出现此类错误。 所以看起来Web服务代码可能存在问题,而不是JavaScript。

但是GetProviderTrades元素的XML命名空间看起来不对(给定http://zulutrade.com/WebServices/Performance.asmx?op=GetProviderTrades ),请尝试替换该行:

 Xml.attribute("xmlns", "http://zulutrade.com/WebServices/Performance.asmx?WSDL"), 

有:

 Xml.attribute("xmlns", "ZuluTrade.WebServices"),