Rem*_*sen 5 c# async-await portable-class-library xamarin
我正在尝试编写以下方法:
public async Task<string> GetJson(string url,
Dictionary<string,string> parameters = null){
// parameters?
if (parameters != null) {
if (parameters.Count > 0) {
url += "?";
foreach(var key in parameters.Keys){
// add parameter to url
url += String.Format("{0}={1}", key, parameters[key]);
// more parameters?
if(!parameters.Keys.Last ().Equals(key)){
url += "&";
}
}
}
}
// send request
var uri = new Uri(url);
var req = new HttpClient();
Task<string> getJsonTask = req.GetStringAsync(uri);
// EXCEPTION : 'Cannot await on Task<string>'
return await getJsonTask;
}
Run Code Online (Sandbox Code Playgroud)
我在编译时遇到错误.我不认为问题是语法.我认为是一个依赖问题.我的参考资料是:

我用Nuget添加了它们.关于什么可能是问题的任何想法?
提前致谢.
UPDATE
Selman22建议:
public async Task<string> GetJson(string url, Dictionary<string,string> parameters = null){
// ...
return await req.GetStringAsync(uri); // Same exception
}
Run Code Online (Sandbox Code Playgroud)
Kenneth建议:
public Task<string> GetJson(string url, Dictionary<string,string> parameters = null){
// ...
return req.GetStringAsync(uri); // no problems here
}
// Later when trying to invoke GetJson
public async Task<List<Station>> GetStations(){
var url = String.Format(
"?{0}_id{1}&_render=json",
DublinBikeDataProvider.BASE_URL,
DublinBikeDataProvider.STATIONS
);
var json = await this._httpClient.GetJson(url); // same exception
return this.ParseStations(json);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3935 次 |
| 最近记录: |