我想在发布 HTTP Post 或 Get 请求后返回该对象。我可以在网络应用程序上做。现在我需要在 MS windows phone 应用程序中编写这个函数。我读了一些关于执行 HTTP Get 和 Post 请求的文章,但我仍然无法弄清楚。我想要一个帮助类来执行 Web 请求并返回对象,就像我在我的 Web 应用程序上所做的一样。我的 Windows 应用程序使用 MVVM 模式。Web 请求将由 viewmodel 调用。如何重载 BeginGetResponse 以返回对象而不是 IAsyncResult?有人会给我链接或示例来指导我。提前致谢。
Web 应用程序上有我的旧代码
public static T GetData<T>(Uri relativeUri)
{
var request = CreateRequest(relativeUri);
HttpWebResponse r;
try
{
r = (HttpWebResponse)request.GetResponse();
return Deserializer<T>(r.GetResponseStream());
}
catch (WebException webex)
{
HttpWebResponse webResp = (HttpWebResponse)webex.Response;
setSessionError(webResp.GetResponseStream());
}
return Deserializer<T>(request.GetResponse().GetResponseStream());
}
public static T Deserializer<T>(Stream s)
{
//Get results
var ser = new DataContractSerializer(typeof(T));
var reader = XmlDictionaryReader.CreateTextReader(s,
new System.Xml.XmlDictionaryReaderQuotas());
ser = new DataContractSerializer(typeof(T));
var deserializedItem = (T)ser.ReadObject(reader, true);
reader.Close();
return deserializedItem;
}
我想做这样的事情:
public static T GetData<T>(Uri relativeUri)
{
var request = CreateRequest(relativeUri);
Stream ResponseStream;
request.BeginGetResponse(ReadCallback, request, ResponseStream);
return Deserializer<T>(ResponseStream);
}