我正在尝试从Windows Phone 7应用程序下载协议缓冲区格式的服务器的响应。
我正在尝试使用WebClient来做这件事,我的问题如下。
WebClient只有两种下载方法
DownloadStringAsync(new Uri(url));和
OpenReadAsync(new Uri(url));但是这两个方法不适合检索响应,因为响应大小应该有16个十六进制字符( 080118CBDDF0E104 ),但这两个方法获得的字符串和流的大小只有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=340上
但此方法已被删除,或尚未在Windows Phone 7开发工具包中实现。
发布于 2011-02-11 19:51:36
您是如何从流中读取数据的?
如果您将其作为字符串读取,那么它可能读取每个字符两个字节-而不是使用
var buf = new byte[16];
var actual = stream.Read(buf, 0, buf.Length);https://stackoverflow.com/questions/3235790
复制相似问题