在 c#( .net) system.net.http 中,如何将 response.statuscode 作为 int 获取?不使用 HttpWebRequest 和 HttpWebResponse

In c#( .net) system.net.http, how to get the response.statuscode as an int? Not to use HttpWebRequest and HttpWebResponse

        var hcHandler = new HttpClientHandler();
        //hcHandler.AllowAutoRedirect = false;
        var hc = new HttpClient(hcHandler);
        hc.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
        String url = "http://passport.cnblogs.com/login.aspx";
        var task = hc.GetAsync(new Uri(url));
        HttpResponseMessage response = task.Result;

        string statusCode = response.StatusCode.ToString();

我想获取整数状态码,我该怎么做?

HttpResponseMessage.StatusCode is a HttpStatusCode枚举,其底层整数类型是int,所以你可以直接转换它:

int statusCode = (int)response.StatusCode;

HttpStatusCode 声明为枚举类型,类似于:

enum HttpStatusCode
{
     NotFound = 404,
     ...
}

这意味着你可以简单地通过转换来做到这一点:

int status = (int)HttpStatusCode.NotFound;