2

Windows Phone 7 アプリケーションから Protocol Buffer 形式のサーバーから応答をダウンロードしようとしています。

私は WebClient でこれをやろうとしていますが、私の問題は次のとおりです。

WebClient のダウンロード方法は 2 つだけです

DownloadStringAsync(new Uri(url));

OpenReadAsync(new Uri(url));

しかし、この 2 つの方法は応答を取得するのには適していません。応答のサイズは 16 桁の 16 桁 ( 080118CBDDF0E104 ) である必要がありますが、2 つの方法で取得される文字列とストリームのサイズはわずか 8 です。

だから私は私の問題を解決する方法を探しています。C#用のものを見つけました

public static T DownloadProto<T>(this WebClient client, string address)
{
   byte[] data = client.DownloadData(address);
   using (var ms = new MemoryStream(data))
   {
      return Serializer.Deserialize<T>(ms);
   }
}

http://code.google.com/p/protobuf-net/source/browse/trunk/BasicHttp/HttpClient/ProtoWebClient.cs?spec=svn340&r=3​​40

しかし、このメソッドは削除されたか、Windows Phone 7 開発キットにはまだ実装されていません。

4

1 に答える 1

0

ストリームからどのように読んでいますか?

文字列として読み取る場合は、おそらく1文字あたり2バイトを読み取ります-代わりに

var buf = new byte[16];
var actual = stream.Read(buf, 0, buf.Length);
于 2011-02-11T11:51:36.323 に答える