我可以调用 count : 0 来编写自定义错误处理吗?

问题描述 投票:0回答:1

获取请求 https://xyz.csod.com/services/api/x/users/v2/employees/?externalId=XID12234546347

参数键 |价值 外部 ID | XID12234546347

{ "timestamp" : "2024-01-0701: 26:08.124344Z", "count" : 0, "data" : [ ] }

private int GetUserXID(string XID_ID.string xYZToken) 


{
  var client = new RestClient(
      ConfigurationManager.AppSettings["ClientUrlGet"].ToString() + XID_ID);
  var request = new.RestRequest(Method.GET);
  request.AddHeader("Content-Type", "application/json");
  request.AddHeader("Authorization"."Bearer" + xXYZToken);
  request.AddHeader("Cookie", "ASP.NET_SessionId=oapi1ndrnrtrhb0rei0lubp");
  RestResponse response = (RestResponse)client.Execute(request);

   var zz = response.Content.Split(',')[2];
   return Convert.ToInt32(zz.Split(':')[2]);

}

我发出了一个 GET 请求,当用户处于非活动状态时,该请求没有返回任何数据,并尝试为 [count = 0] 添加错误处理,并显示自定义消息“请在系统中添加用户”?

我尝试在 count=0 时处理错误并显示错误消息,但仍然生成错误

c# api model-view-controller
1个回答
0
投票

API响应返回计数为0,表示没有找到数据。您可以修改代码来处理这种情况并显示自定义错误消息。具体方法如下:

private int GetUserXID(string XID_ID, string xYZToken) 
{
    var client = new RestClient(ConfigurationManager.AppSettings["ClientUrlGet"].ToString() + XID_ID);
    var request = new RestRequest(Method.GET);
    request.AddHeader("Content-Type", "application/json");
    request.AddHeader("Authorization", "Bearer " + xYZToken);
    request.AddHeader("Cookie", "ASP.NET_SessionId=oapi1ndrnrtrhb0rei0lubp");
    
    // Execute the request
    IRestResponse response = client.Execute(request);

    // Check if the response is successful
    if (response.IsSuccessful)
    {
        // Parse the JSON response
        JObject jsonResponse = JObject.Parse(response.Content);

        // Check if the count is 0
        if (jsonResponse["count"].Value<int>() == 0)
        {
            // Display custom error message
            Console.WriteLine("Please add the user to the system.");
            return -1; // or whatever value indicates an error in your context
        }
        else
        {
            // Extract and return the value you need
            var zz = jsonResponse["data"][0]["your_property_here"];
            return Convert.ToInt32(zz); // or whatever conversion you need
        }
    }
    else
    {
        // Handle unsuccessful response
        Console.WriteLine("Error occurred: " + response.ErrorMessage);
        return -1; // or whatever value indicates an error in your context
    }
}

此代码通过显示自定义错误消息“请将用户添加到系统”来处理 API 响应返回计数 0 的情况。如果响应成功且计数不为 0,则继续解析响应并提取必要的数据。如果响应不成功,则会相应地处理错误。确保将“your_property_here”替换为您要从响应中提取的实际属性。此外,根据您的应用程序要求调整错误处理。

© www.soinside.com 2019 - 2024. All rights reserved.