2011-09-11 47 views
0

我目前正在消耗是工作在我的瀏覽精細的API - 我的代碼如下:Soap 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。服務器響應: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 - 這是爲什麼我收到錯誤?如果是這樣,我如何在我的請求中傳遞這種類型的東西?

謝謝!

回答

1

據我所知,從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"] 
+1

感謝,貌似已經奏效。 –

+0

很高興幫助你:-) –

相關問題