我嘗試從VBA for Excel程序查詢VB.NET中的RESTful API。無法在VB.NET中反序列化XML
但是,我似乎無法正確反序列化XML。
在VBA方面,代碼如下:
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://localhost:50261/api/values"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.0)"
objHTTP.setRequestHeader "Content-type", "application/xml"
objHTTP.send ("<?xml version=""1.0"" encoding=""UTF-8""?><KPISheet><site>mysite</site><unit>myunit</unit></KPISheet>)")
正如你所看到的,我送什麼,我相信這是一個良好和非常簡單的XML文檔。
在VB.NET的一面,我有一個類,叫做KPISheet:
Public Class KPISheet
Public Site As String
Public Unit As String
End Class
而一個的WebAPI,以獲得 'POST':
Public Sub PostValue(<FromBody> oKPISheet As KPISheet)
Debug.Print("toto")
End Sub
如果我在設置斷點調試行,我可以看到oKPISheet是Nothing,XML文件沒有反序列化。
在輸出窗口,我得到了以下錯誤消息:
拋出異常: 'System.Runtime.Serialization.SerializationException' 在System.Runtime.Serialization.dll
我有試過並沒有標籤,但我無法得到它的工作。
最後我改變了我的負荷,JSON,和多數民衆的工作就像一個魅力... – Maxime