检查http响应状态码的最佳方法?

Posted

技术标签:

【中文标题】检查http响应状态码的最佳方法?【英文标题】:Best way to check status code of http response? 【发布时间】:2020-08-10 20:08:30 【问题描述】:

问题是:在获得 http 响应时检查状态码的最佳方法是什么? 例如

fetch('https://***.com/').then((response)=>
    if (response.status >= 400) 
        //handle unsuccessful request ...
    

    // or 
    if (response.status == 200)  
        // status ok 
    

);

但是,语句有幻数。例如200 或 400。 是否有避免幻数的最佳做法?

【问题讨论】:

它们不是神奇的数字,它们是HTTP response status codes 您可以将它们定义为常量以使它们更具可读性,但这些常量将保存“幻数”,尽管它们是已定义和标准化的 API 接口。 感谢您的回复。我知道它是定义的代码。但是当我开发后端服务时,我总是使用库来将 http.StatusOK 设置为 200。在 if 语句中使用数字不利于长期发展。 浏览器是否有内置的状态码定义库?这是很常见的用法。我认为为每个开发人员维护一个并不好。 【参考方案1】:

状态码是响应对象的状态属性。此外,除非您在错误响应中使用 JSON(当然有些人会这样做),否则您需要在调用 json 之前检查状态代码(或 ok 标志):

fetch('https://jsonplaceholder.typicode.com/todos/1').then((response)=>
    console.log(response.status); // Will show you the status
    if (!response.ok) 
        throw new Error("HTTP status " + response.status);
    
    return response.json();
);

【讨论】:

以上是关于检查http响应状态码的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

http请求和Http响应包含哪些内容

HTTP状态码

三HTTP响应

第五阶段:JAVAEE 和项目开发(第四课:HTTP的响应格式和响应状态码)

Http响应码 意思详解/大全

网络信息系统,HTTP请求与响应