为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C#中的API响应上在错误goto下实现?

如何在C#中的API响应上在错误goto下实现?

C#
蓝山帝景 2021-05-21 13:10:16
我有ID的列表,我正在遍历这些ID中的每一个以获取详细信息。在少数情况下,API调用失败。因此,我想跳过失败的API调用,并希望继续进行下一个ID API调用;类似于on error goto next。foreach (var item in ID){    try    {        List<string> resultList = new List<string>();        url = string.Format(HttpContext.Current.Session["url"].ToString() +               ConfigurationManager.AppSettings["propertyURL"].ToString(),              HttpContext.Current.Session["ObjectID"].ToString(), item);        var request1 = WebRequest.Create(url);        request1.Headers["X-Authentication"] = HttpContext.Current.Session["vaultToken"].ToString();        request1.Method = "GET";        request.Headers.Add("Cache-Control", "no-cache");        //// Get the response.        var response1 = request1.GetResponse();        var deserializer1 = new DataContractJsonSerializer(typeof(PropertyValue[]));        var result1 = (PropertyValue[])deserializer1.ReadObject(response1.GetResponseStream());    }    catch (Exception ex)    {    }}有什么可能的解决方案,即使API调用失败,foreach循环也将用于下一个ID API调用。
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

实际上,这更加清楚。


Dictionary<int, string> resultList = new Dictionary<int, string>();


foreach (var item in ID)

{

   resultList.Add(item,string.Empty);

   try

   {

         // Your Call Here


         // Add Result to resultList here


       var apiCallResult = apiCall(item);

       resultList[item] = apiCallResult;

   }

   catch

   {

   }

}

您可以在字典中查询ID没有结果的。


查看完整回答
反对 回复 2021-05-23
  • 2 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信