Post HTTP Post または Get リクエストの後にオブジェクトを返したいと思います。私はWebアプリケーションで行うことができました。次に、この関数を MS Windows Phone アプリケーションに記述する必要があります。HTTP Get and Post Request の実行に関する記事を読みましたが、まだ理解できません。Web アプリケーションで行ったのと同じように、Web 要求を実行してオブジェクトを返すヘルパー クラスが必要です。私の Windows アプリケーションは MVVM パターンを使用しています。Web リクエストはビューモデルによって呼び出されます。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);
}