0

現在、Windows Compact Framework 3.5 を使用してモバイル デバイスと通信しています。デバイスに送信されるメッセージは次のように構築されます。

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);

メッセージをデコードすると、次のようになります。

&lt;base64Binary xmlns="http://schemas.microsoft.com/2003/10/Serialization/"&gt;PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0id2luZG93cy0xMjUyIj8+PG1lc3NhZ2UgdHlwZT0icmVzcG9uc2UiPjxoZWFkZXI+PGRhdGV0aW1lPjIwMTMtMDQtMDNUMDk6NDk6MzU8L2RhdGV0aW1lPjxzZW5kZXIgdmVyc2lvbj0iMS4xLjQuMTEzOCI+PHVzZXJpZD5Db25uZWN0IFNlcnZlcjwvdXNlcmlkPjwvc2VuZGVyPjxjb21tYW5kbGlzdD48bW9kdWxlPkFETUlOPC9tb2R1bGU+PGNvbW1hbmQxPlZBTElEQVRFPC9jb21tYW5kMT48L2NvbW1hbmRsaXN0PjxyZXN1bHQgdHlwZT0ib2siLz48L2hlYWRlcj48L21lc3NhZ2U+&lt;/base64Binary&gt;

メッセージを送信する前にサーバー上でメッセージのデコードを試みましたが、問題ありません。何がうまくいかないのかわからない。

どんな助けでも大歓迎です。

4

2 に答える 2

2

Request.CreateResponse() は ObjectContent を使用します。このシナリオでは、それは望ましくありません。XML を返すには、StringContent または StreamContent のいずれかを使用する必要があります。詳細については、この質問を参照してくださいhttps://stackoverflow.com/a/15372410/6819

于 2013-04-05T11:22:16.397 に答える