首页
学习
活动
专区
圈层
工具
发布

网关修改响应码,拯救业务不规范设计

客户端那边判断请求是否成功,是通过对响应体中的code字段进行(该code不是Http中的响应码),如果code不等于200,那么客户端就认为请求被成功的处理了。...因为游戏客户端的接口,不管请求是否成功,Http响应码都必须是200。而管理后台和第三方应用都能正确处理Http响应码,第三方应用对接口要求严格,比如权限不足就必须返回403。...最终代码java 代码解读复制代码public class XcyeGatewayProperties { /** * 网关会自动将所有返回的响应码转换为200,如果存在不需要转换的请求头...().setStatusCode(HttpStatus.NOT_FOUND); log.info("请求 {} 返回的原始响应状态码为: {}, ModifyResponseStatusFilter...修改响应状态码为200的状态为 {}", path, statusCode.value(), status); })); } @Override public int getOrder

41010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    网关修改响应码,拯救业务不规范设计

    客户端那边判断请求是否成功,是通过对响应体中的code字段进行(该code不是Http中的响应码),如果code不等于200,那么客户端就认为请求被成功的处理了。...因为游戏客户端的接口,不管请求是否成功,Http响应码都必须是200。而管理后台和第三方应用都能正确处理Http响应码,第三方应用对接口要求严格,比如权限不足就必须返回403。...最终代码public class XcyeGatewayProperties { /\*\* \* 网关会自动将所有返回的响应码转换为200,如果存在不需要转换的请求头,请在此排除,支持ant...().setStatusCode(HttpStatus.NOT\_FOUND); log.info("请求 {} 返回的原始响应状态码为: {}, ModifyResponseStatusFilter...修改响应状态码为200的状态为 {}", path, statusCode.value(), status); })); } @Override public int getOrder

    54610

    【《Effective C#》提炼总结】提高Unity中C#代码质量的21条准则

    应该尽量使用运行时常量,而不是编译器常量。虽然编译器常量略快,但并没有运行时常量那么灵活。应仅仅在那些性能异常敏感,且常量的值在各个版本之间绝对不会变化时,再使用编译时常量。...原则3 推荐使用is 或as操作符             而不是强制类型转换 ● C#中,is和as操作符的用法概括如下: is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常...as:作用与强制类型转换是一样,但是永远不会抛出异常,即如果转换不成功,会返回null。 ● 尽可能的使用as操作符,因为相对于强制类型转换来说,as更加安全,也更加高效。...● as在转换失败时会返回null,在转换对象是null时也会返回null,所以使用as进行转换时,只需检查返回的引用是否为null即可。...而若是要更复杂一些的逻辑来初始化静态成员变量,那么可以使用静态构造函数。 ● 使用静态构造函数而不是静态初始化器最常见的理由就是处理异常。在使用静态初始化器时,我们无法自己捕获异常。

    2.6K30

    SendCloud邮件队列状态和已使用额度的Python监控脚本

    比如每天发信额度是不是要超标了或是邮件是否堵塞了等等。最近经常接触 python,所以这次也一样,继续学习使用 python 来完成各种脚本需求。 ?...usedQuota表示查询当前使用额度,isStop查询是否存在暂停的队列   #转载所需组件 import optparse import json import httplib   #GET抓取JSON返回值并转换为字典...usedQuota   #监控队列是否暂停 SendCloud.py -r isStop 涉及到了网页抓取,期间少不了百度搜索 python 抓取网站的一些函数和用法,于是继续写了一个监控网页 HTTP 状态码的监控脚本.../usr/bin/env python #网页状态码监控脚本 #若返回码不是200或304将输出对应数值,正常则输出200表示无异常 #执行形式为:脚本.py -r website1/website2...  #装载必须组件 import optparse import httplib import sys   #屏蔽错误信息 sys.stderr = None   #使用head方法获取网页状态码 def

    1.6K90

    如果还不懂如何使用 Consumer 接口,来青岛我当面给你讲!

    这样的话就会存在以下几种情况: 一、B表中不存在与A表关联的数据,此时需要调用第三方接口,插入B表同时更新A表的状态; 二、B表中存在与A表关联的数据; A表中的状态为处理中:直接返回处理中字样; A表中的状态为处理成功...如果接口用该注解来注释,但实际上不是函数式接口,则会在编译时报错。 Consumer 我们一般称之为“消费者”,它表示接受单个输入参数但不返回结果的操作。...如果还不理解,我们可以把它转换为匿名内部类的调用方式。...value : other.get(); } Function 我把它称为“转换者”,表示接收一个参数通过处理之后返回一个结果的函数。...t 是否匹配规则,成功返回true,失败返回 false * 如果当前函数返回 false,则 other 函数不进行计算 * 在评估 Predicate 期间引发的任何异常都会转发给调用方

    50750

    C#开发BIMFACE系列6 服务端API之获取文件信息

    系列目录 【已更新最新开发文章,点击查看详细】 在《C#开发BIMFACE系列4 服务端API之源上传文件》、《C#开发BIMFACE系列5 服务端API之文件直传》两篇文章中详细介绍了如何将本地文件上传到...文件上传成功后,BIMFACE的服务会返回与该文件相关的信息,如下图: ? 开发者在成功上传了文件并获得相关文件信息后,可以将信息保存到数据库中供后续的业务开发使用。...除此之外,BIMFACE平台还提供了单独的服务用于获取文件信息、获取文件信息列表、获取文件上传的状态信息、获取应用支持的文件类型。 下面分别介绍各种服务的使用方法。...response; 34 } 35 catch (Exception ex) 36 { 37 throw new Exception("[根据文件ID获取文件详细信息]发生异常...:文件的上传时间、存储文件的额外属性、文件编号、文件的大小、文件的名称、文件的上传状态、文件的后缀名。

    96150

    提高性能的一个有效的手段:条件资源获取(Conditional Retrieval)

    “304(Not Modified)”的回复会抛出如下图所示的ProtocolException异常,并提示“远程服务器返回了意外响应: (304) Not Modified”。...我们通过当前WebOperationContext得到表示入栈请求上下文的IncomingWebRequestContext对象,并调用其CheckConditionalRetrieve进行条件获取检验,而传入的参数是最新员工列表对象的哈希码...在返回员工列表之前我们将此哈希码作为了回复消息的ETag报头。...在回复状态为“304 (Not Modified)”的情况下,GetResponse方法会 抛出一个WebException异常,所以我们对该类型的异常进行的捕获。...如果WebException异常的StatusCode属性返回的HTTP状态是我们预知的NotModified,则意味着获取的员工列表未曾改变,于是我们在控制台上打印“服务端数据未发生变化”字样。

    81270

    【Nest教程】为项目增加个自定义过滤器

    在接收一个接口请求与响应的整个过程中,由于不确定因素太多,必定会遇到各种异常的状况,但凡使用throw 抛出的异常都可以通过异常过滤器来获取到其异常内容然后可以自定义修改返回给前端。...Nest内置的异常层负责处理整个应用中抛出的所有异常,当捕获到异常并自定义修改,最终用户将收到友好的响应。 ?...HttpException, host: ArgumentsHost) { const ctx = host.switchToHttp(); const response = ctx.getResponse...exception.getStatus() : HttpStatus.INTERNAL_SERVER_ERROR; // 设置返回的状态码、请求头、发送错误信息 response.status...它告诉 Nest这个特定的过滤器正在寻找 HttpException 而不是其他的。catch() 方法有两个参数。

    1K1511
    领券