我目前正在使用Windows Compact Framework 3.5與移動設備進行通信。發送到設備建立所述消息是如因而,Asp.net MVC web api Response.CreateResponse發送奇數內容
HttpResponseMessage result;
var response = Encoding.UTF8.GetBytes("<?xml version=\"1.0\" encoding=\"windows-1252\"?><message type=\"response\"><header><datetime>2013-04-03T09:49:35</datetime><sender version=\"1.1.4.1138\"><userid>Connect Server</userid></sender><commandlist><module>ADMIN</module><command1>VALIDATE</command1></commandlist><result type=\"ok\"/></header></message>");
result = Request.CreateResponse(HttpStatusCode.OK, response);
然後,設備檢索消息,然後使用
Encoding.UTF8.GetString(responseContent);
消息解碼之後是:
<base64Binary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0id2luZG93cy0xMjUyIj8+PG1lc3NhZ2UgdHlwZT0icmVzcG9uc2UiPjxoZWFkZXI+PGRhdGV0aW1lPjIwMTMtMDQtMDNUMDk6NDk6MzU8L2RhdGV0aW1lPjxzZW5kZXIgdmVyc2lvbj0iMS4xLjQuMTEzOCI+PHVzZXJpZD5Db25uZWN0IFNlcnZlcjwvdXNlcmlkPjwvc2VuZGVyPjxjb21tYW5kbGlzdD48bW9kdWxlPkFETUlOPC9tb2R1bGU+PGNvbW1hbmQxPlZBTElEQVRFPC9jb21tYW5kMT48L2NvbW1hbmRsaXN0PjxyZXN1bHQgdHlwZT0ib2siLz48L2hlYWRlcj48L21lc3NhZ2U+</base64Binary>
嘗試解碼在發送它之前服務器上的消息並沒有問題。不確定會發生什麼問題。
任何幫助將不勝感激。
這將有同樣的問題,因爲Request.CreateResponse使用ObjectContent,它假定你想使用對象序列化。返回一個字符串將得到一個字符串對象的XML序列化,幷包含seralization命名空間。 – 2013-04-05 11:16:46
@DarrelMiller我希望你是對的。這使得我接受的問題被認爲是錯誤的或誤導性的。 – 2013-04-05 11:23:46
關於您鏈接到的問題的奇怪之處在於OP使用的是StringContent,因此應該返回正常。唯一的問題是StringContent將content-type設置爲text/plain,以便需要重寫。但是,被接受的答案是誤導性的。 – 2013-04-05 11:35:04