不過該廠商只有提供WSDL檔案,所以只好用微軟的WSDL.exe去把該廠商提供的WSDL產出成程式碼,在這Web Service主要可以取得訂單總數及訂單內容,由WSDL.exe產出的類別,很順利的取得訂單總數,不過訂單內容怎麼取都是null。
依WSDL內容,該服務會回傳一個訂單陣列,不過怎麼試都是null...
最後用soapUI去查看對方的Web Service有沒有問題,結果soapUI測試ok,那就不會是網路的問題了~可是資料到底跑哪去了!?再動用Packetyzer去看封包,結果確定資料都有進程式裡...
google很久,在asp.net討論區找到一樣的問題,本來WSDL.exe產出的程式碼如下
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace = "http://xxx.xxx.xxx", ResponseNamespace = "http://xxx.xxx.xxx")]
[return: System.Xml.Serialization.SoapElementAttribute("getOrderByDtReturn")]
public Orders getOrderByDt(System.DateTime dt)
{
object[] results = this.Invoke("getOrderByDt", new object[] {
dt});
return (Orders)results[0];
}
討論區有人提供的解決方法是直接回傳object...好吧,也只好先這樣了@@~
將程式改為...
將程式改為...
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace = "http://xxx.xxx.xxx", ResponseNamespace = "http://xxx.xxx.xxx")]
[return: System.Xml.Serialization.SoapElementAttribute("getOrderByDtReturn")]
public object getOrderByDt(System.DateTime dt)
{
object[] results = this.Invoke("getOrderByDt", new object[] {
dt});
return results[0];
}
接回object後再轉型為XmlNode[]來解...
沒有留言:
張貼留言