提取返回任務數據的異步方法在C#中如何提取下面foreach
循環從返回值的數據: 我在這裏無法提取返回值的數據。 我正在Windows 10通用應用程序開發中構建一個應用程序。如何在Windows 10
var response = NetworkingCalls.getResponseFromUrl(url, requestDictionary);
foreach (KeyValuePair<string, object> item in response)
{
Util.debugLog(item.Key.ToString(), item.Value.ToString());
}
這是返回字典
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Windows.Storage.Streams;
using Windows.Web.Http;
namespace App2.WrittenLibraries
{
class NetworkingCalls
{
public async static Task<Dictionary<string, object>> getResponseFromUrl(string urlString, Dictionary<string, object> requestDictionary)
{
var client = new HttpClient();
Uri url = new Uri(urlString);
var requestToSend = JSONParser.getJsonString(requestDictionary);
HttpResponseMessage response = await client.PostAsync(url, new HttpStringContent(requestToSend,
UnicodeEncoding.Utf8,
"application/json"));
if (response.IsSuccessStatusCode)
{
try
{
var responseString = await response.Content.ReadAsStringAsync();
client.Dispose();
return JSONParser.getDictionary(responseString);
}
catch (Exception ex)
{
client.Dispose();
return new Dictionary<string, object>();
}
}
else
{
client.Dispose();
return new Dictionary<string, object>();
}
}
}
}
請不要永遠不要'catch(Exception ex)' - 這是一個糟糕的編程習慣。 – Enigmativity
感謝您的建議,如果您提出其他好的方法,我會更有幫助。 – djkp
@javvajikiran - 簡單地不抓住'Exception' - 只捕獲您可能發生的可以從中恢復的特定異常。否則,不要抓住他們。你的代碼目前隱藏了錯誤,使你的代碼錯誤並且很難修復。 – Enigmativity