/// <summary> /// 从服务器中获取数据。 /// </summary> /// <param name="type"> /// 要获取的数据的类型。 /// </param> /// <param name="args"> /// 一个参数数组,其中的内容用于替换格式符号。 /// </param> public static async Task <JToken> GetDataAsync(DataUriType type, params object[] args) { bool forceRefresh = false; string uri = string.Format(GetUriStringTemplate(type), args); string json; if (forceRefresh || !responseCache.ContainsKey(uri)) { json = await NetworkHelper.GetJson(uri); if (responseCache.ContainsKey(uri)) { responseCache[uri] = json; } else { responseCache.Add(uri, json); } } else { json = responseCache[uri] as string; } var o = JObject.Parse(json); JToken token = null; if (!string.IsNullOrEmpty(json) && !o.TryGetValue("data", out token) && o.TryGetValue("message", out JToken value)) { throw new CoolapkMessageException(value); } else { return(token); } }