我需要将数据发布到服务器,并从中获取压缩数据。
我正在使用 windows phone 7 sdk。
我读到它可以使用 SharpGIS 或 Coding4Fun 工具包来完成。
他们使用 WebClient (AFAIK)。
谁能帮我?
这是我需要做的-
将数据(XML)发布到 url
以xml字符串/流的形式获取压缩数据(服务器只支持GZip)
反序列化收到的 xml 数据
并且方法应该是可等待的。
我需要将数据发布到服务器,并从中获取压缩数据。
我正在使用 windows phone 7 sdk。
我读到它可以使用 SharpGIS 或 Coding4Fun 工具包来完成。
他们使用 WebClient (AFAIK)。
谁能帮我?
这是我需要做的-
将数据(XML)发布到 url
以xml字符串/流的形式获取压缩数据(服务器只支持GZip)
反序列化收到的 xml 数据
并且方法应该是可等待的。
支持 C4F 工具包的 WebClient 和 HttpWebRequest。HttpClient 不存在当前在 WP 中没有 http 客户端库。
当我不得不在 wp7 中这样做时,我
在可移植类库中
public class PostData
{
public async Task<T> TestMe<T>(XElement xml)
{
var client = new HttpClient(new HttpClientHandler
{
AutomaticDecompression = DecompressionMethods.GZip
| DecompressionMethods.Deflate
});
var response = await client.PostAsync("https://requestUri", CreateStringContent(xml));
var responseString = await response.RequestMessage.Content.ReadAsStringAsync();
//var responseStream = await response.RequestMessage.Content.ReadAsStreamAsync();
//var responseByte = await response.RequestMessage.Content.ReadAsByteArrayAsync();
return JsonConvert.DeserializeObject<T>(responseString);
}
private HttpContent CreateStringContent(XElement xml)
{
return new StringContent(xml.ToString(), System.Text.Encoding.UTF8, "application/xml");
}
}
我不使用 Windows 8,这意味着 Windows Phone SDK 仅在 VS 2010 上,不支持 Microsoft HttpClient。
有一个由 MS 开发人员编写的 NuGet 包Delay.GZipWebClient ,为其添加了简单的支持。到目前为止,它就像一个魅力。