我花了一个小时看但似乎无法找到答案..当我只是引用一个服务并使用回调时这很容易..但是从Windows Phone 8我怎么只是从
http://punkoutersoftware.azurewebsites.net/api/Score (那里的简单测试数据)
对于初学者我很乐意拥有RAW Text ..从那里我喜欢把它放在一个对象中......或者如果有一个'获取REST数据进入你的Windows Phone 8 app 101'文章某个地方会有所帮助..
我假设我会以某种方式使用新的async / await作为wwell ..
到目前为止,我最好的尝试是
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
string uriString = "http://punkoutersoftware.azurewebsites.net/api/Score";
var uri = new Uri(uriString);
var httpWebRequest = HttpWebRequest.Create(uri);
httpWebRequest.BeginGetResponse(new AsyncCallback(OnGettingResponse), httpWebRequest);
}
private void OnGettingResponse(IAsyncResult ar)
{
var req = ar.AsyncState as HttpWebRequest;
var response = (HttpWebResponse)req.EndGetResponse(ar);
var responseStream = response.GetResponseStream();
}
编辑1:
这就是我需要的吗?运行该行后,responseBodyAsText似乎没有任何价值?
private async void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
HttpClient httpClient = new HttpClient();
string responseBodyAsText = await httpClient.GetStringAsync("http://punkoutersoftware.azurewebsites.net/api/Score");
}
答案 0 :(得分:1)
尝试使用HttpClient,它不那么笨拙并且语法更友好。
没有将数据输入手机的快捷方式,最低限度,您必须创建一个类并将json字符串反序列化为对象。有几个有用的工具可用,例如JSON.net用于反序列化,json2csharp用于懒惰的人,比如你和我直接从json创建类
我还会重新考虑将http请求放入其他事件中,将其置于加载的事件中会在每次用户来回导航时触发它
答案 1 :(得分:1)
有两个库可以帮助您在Windows Phone应用程序中使用REST:'Hammock for Windows Phone'和'RestSharp'。两者都非常丰富,可以简化反序列化。