You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将HttpStatusCode转换为易读字符串(HttpWebResponse场景)

解决HttpStatusCode转指定格式易读字符串的问题

我来帮你搞定这个问题!在使用HttpWebResponse的场景下,因为没有HttpResponseMessage里的ReasonPhrase属性,直接用statusCode.ToString()得到的是无空格的驼峰字符串(比如BadRequest),而且简单的正则拆分还会遇到RequestUriTooLong这种需要特殊处理的反例,这里给你两种靠谱的解决方案:

方案一:手动映射字典(最准确)

因为HttpStatusCode是标准枚举,值是固定的,我们可以提前创建一个字典,把每个枚举值对应到符合要求的易读字符串,包括特殊情况:

// 提前定义全局的状态码映射字典
private static readonly Dictionary<HttpStatusCode, string> _statusCodeReadableMap = new Dictionary<HttpStatusCode, string>
{
    // 常见状态码示例
    { HttpStatusCode.OK, "OK" },
    { HttpStatusCode.BadRequest, "Bad Request" },
    { HttpStatusCode.Unauthorized, "Unauthorized" },
    { HttpStatusCode.NotFound, "Not Found" },
    { HttpStatusCode.RequestUriTooLong, "Request-Uri Too Long" },
    { HttpStatusCode.InternalServerError, "Internal Server Error" },
    // 按需补充其他所有需要用到的状态码
};

// 使用示例
HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
HttpStatusCode statusCode = response.StatusCode;

// 获取易读字符串,兜底处理未定义的状态码
string readableStatus = _statusCodeReadableMap.TryGetValue(statusCode, out var description)
    ? description
    : statusCode.ToString();

这种方法的优势是完全准确,不会出现正则处理的反例问题;缺点是需要手动维护字典,但因为HTTP状态码是标准规范,不会轻易变动,维护成本很低。

方案二:改进正则表达式(更简洁)

如果不想手动维护所有状态码,可以先处理特殊情况,再用正则拆分驼峰格式:

public static string ConvertToReadableStatusCode(HttpStatusCode statusCode)
{
    string codeString = statusCode.ToString();
    
    // 先处理特殊情况:替换RequestUri为Request-Uri
    codeString = codeString.Replace("RequestUri", "Request-Uri");
    
    // 正则拆分驼峰:在大写字母前添加空格(排除第一个字符)
    string readableString = Regex.Replace(codeString, @"(?<!^)([A-Z])", " $1").Trim();
    
    return readableString;
}

// 使用示例
HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
HttpStatusCode statusCode = response.StatusCode;
string readableStatus = ConvertToReadableStatusCode(statusCode);

这种方法只需要处理少数特殊的状态码(比如RequestUriTooLong),其余的驼峰格式都能自动拆分,代码更简洁,适合大部分场景。

内容的提问来源于stack exchange,提问作者Vitaliy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:58:15