2
我有一些問題反序列化HttpResponseMessage到一個對象。 問題是,當對象應該反序列化時,所有字段爲空,不會引發異常。C#反序列化HttpResponseMessage對象
HttpContent content = new StringContent(xml);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/xml");
HttpResponseMessage response = await client.PostAsync("URL", content).ConfigureAwait(false);
// Parse response
if (response.IsSuccessStatusCode)
{
XmlSerializer serializer = new XmlSerializer(typeof(ResponseObject));
Stream responseStream = await response.Content.ReadAsStreamAsync();
ResponseObject responseObject = serializer.Deserialize(responseStream) as ResponseObject;
//Possible example of wrong data
Console.WriteLine(responseObject.Message);
}
[XmlRoot("response")]
public class ResponseObject
{
[XmlElement("session")]
public string Session { get; set; }
[XmlElement("status")]
public string Status { get; set; }
[XmlElement("message")]
public string Message { get; set; }
}
響應消息作爲字符串
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<response>
<val n=\"session\">SESSION ID</val>
<val n=\"status\">201</val>
<val n=\"message\">Created</val>
</response>"
我錯過了什麼?我很新的序列化/反序列化。 感謝指點。
會話,狀態和消息是標籤'val'的屬性'n'的值。 – Eser
ResponseObject是否不需要某些val元素集合以匹配XML? – Biscuits
我是多麼愚蠢......這就是我試圖重新使用舊項目中的代碼所得到的結果。週一,當我回到工作崗位時,我會繼續努力。 – Mattias