首页 > 解决方案 > 我可以得到在 http 请求中返回的实际错误吗?

问题描述

目前我正在调用一个api,如下所示:

     public static string MyAPICall()
     {
        try 
        {

            var client = new RestClient(_uri);
            var request = new RestRequest { Method = Method.GET,                                                    
             Resource=$"version1/status" };
            var response = client.Execute(request);
            return response.StatusCode.ToString();
        }
        catch
        {
            return HttpStatusCode.BadRequest.ToString();
        }
     }

现在,如果成功,状态码应该可以,否则就不会。我做了一些检查如下:

        var err = string.empty;
        var apicallResponse = MyAPICall();
        if (apicallStaresponse.ToLower() != "ok")
        {
          err =  "please contact your Administrator";
        }

我怎样才能让事情变得更有意义,我怎样才能返回实际错误,是否需要返回实际异常而不是 HttpStatusCode.BadRequest.ToString()?

标签: c#api

解决方案


您应该首先捕获异常。而不是这个:

try
{ ... some code with request ... }
catch
{ .. guessing what the error was here ... }

用这个:

try
{ ... some code with request ... }
catch(Exception exc)
{ .. now you have at least a message here... }

然后你必须知道 API 返回什么。有一组标准的 Http 状态代码,其中 200 表示 OK。再次检查您正在使用的 API 以查看您可能得到的响应。


推荐阅读