我刚刚开始学习 WP 编程,所以这可能是个小问题......
我正在开发从一种 Web 服务获取数据的应用程序,这种方法很少有不同的方法。所以我决定将所有这些 Web 服务获取代码放到一个类中:
class WebApiWorker
{
public async Task<List<GeocodeResponse>> GetGeocodeAsync(String address)
{
String url = "http://api.com&search=" + HttpUtility.UrlEncode(address) + "&format=json";
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = "GET";
HttpWebResponse response = (HttpWebResponse) await httpWebRequest.GetResponseAsync();
Stream responseStream = response.GetResponseStream();
string data;
using (var reader = new System.IO.StreamReader(responseStream))
{
data = reader.ReadToEnd();
}
responseStream.Close();
var geocodeResponse = JsonConvert.DeserializeObject<List<GeocodeResponse>>(data);
return geocodeResponse;
}
}
但是我应该如何从我的“主应用程序”代码中调用它,我正在尝试这样的事情:
WebApiWorker webApi = new WebApiWorker();
var geoResponse = await webApi.GetGeocodeAsync("address");
所以这有什么问题,我得到编译器错误:“等待”运算符只能在异步方法中使用。考虑使用“异步”修饰符标记此方法并将其返回类型更改为“任务”。
欢迎所有建议。