当前位置: 首页 > news >正文

网络服务协议合同seo快速排名分析

网络服务协议合同,seo快速排名分析,网站背景怎么弄,设计商城的网站建设文章目录 前言一、获取响应数据并打印 前言 我们的网关在之前只记录了接口请求日志,响应日志是没有做记录的,在后续别人对接我们开放平台时出现了一些问题没法确认当时的一个数值状态,照成了很多不必要的麻烦,后来决定在网关添加上…

文章目录

    • 前言
    • 一、获取响应数据并打印

前言

      我们的网关在之前只记录了接口请求日志,响应日志是没有做记录的,在后续别人对接我们开放平台时出现了一些问题没法确认当时的一个数值状态,照成了很多不必要的麻烦,后来决定在网关添加上响应日志记录。

一、获取响应数据并打印

import lombok.extern.slf4j.Slf4j;
import org.reactivestreams.Publisher;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.core.io.buffer.DataBufferFactory;
import org.springframework.core.io.buffer.DataBufferUtils;
import org.springframework.core.io.buffer.DefaultDataBufferFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.http.server.reactive.ServerHttpResponseDecorator;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;import java.nio.charset.Charset;@Slf4j
@Component
public class ResponseLogGlobalFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {try {ServerHttpResponse originalResponse = exchange.getResponse();DataBufferFactory bufferFactory = originalResponse.bufferFactory();ServerHttpResponseDecorator decoratedResponse = new ServerHttpResponseDecorator(originalResponse) {@Overridepublic Mono<Void> writeWith(Publisher<? extends DataBuffer> body) {if (body instanceof Flux) {Flux<? extends DataBuffer> fluxBody = Flux.from(body);return super.writeWith(fluxBody.buffer().map(dataBuffers -> {// 合并多个流集合,解决返回体分段传输DataBufferFactory dataBufferFactory = new DefaultDataBufferFactory();DataBuffer buff = dataBufferFactory.join(dataBuffers);byte[] content = new byte[buff.readableByteCount()];buff.read(content);DataBufferUtils.release(buff);//释放掉内存//排除Excel导出,不是application/json不打印MediaType contentType = originalResponse.getHeaders().getContentType();if (!MediaType.APPLICATION_JSON.isCompatibleWith(contentType)) {return bufferFactory.wrap(content);}// 想要关联请求和响应日志可以添加自定义请求头(我这里会在打印请求日志的过滤器中添加REUQEST_ID头来关联响应日志)String reuqestId = exchange.getRequest().getHeaders().getFirst("REUQEST_ID");// content就是response的值,可以查看和修改String contentStr = new String(content, Charset.forName("UTF-8"));log.info("reuqestId={} contentStr={}",reuqestId,contentStr);getDelegate().getHeaders().setContentLength(contentStr.getBytes().length);return bufferFactory.wrap(contentStr.getBytes());}));} else {log.error("<-- {} 响应code异常", getStatusCode());}return super.writeWith(body);}};return chain.filter(exchange.mutate().response(decoratedResponse).build());} catch (Exception e) {log.error("gateway log exception e={}", e);return chain.filter(exchange);}}@Overridepublic int getOrder() {return -1;}
}
http://www.yayakq.cn/news/24123/

相关文章:

  • 黑龙江做网站找谁那种软件可以做视频网站
  • 方案案例网站如何增加网站的外链
  • 网站推广的基本方法甜蜜定制app
  • 做网站是要收费的吗天津建筑网站建设
  • 做网站还要买服务器吗湖南株洲网
  • 山东省建设厅的网站做网站视频用哪个视频编辑软件
  • 抖音做我女朋友的网站网站开发需要考什么证书
  • wordpress访问子网站营口网站优化
  • 做gif表情包的网站网站三要素
  • 学网站建设工作最大的购物平台
  • 网站单页站群哔哩哔哩网页版怎么回到旧版
  • 2017学脚本语言做网站设计官网品牌参考文献
  • 西宁市建设网站企业如何网站防止采集
  • 空间 网站都有 肿么做网站海淘网站建设
  • 珠海做网站三年多少钱免费公众号模板编辑器
  • 怎么做网站安全运维企业进行网络营销策划的目标
  • php网站开发多少钱济宁市住房和城乡建设厅网站
  • 学做吃的网站有哪些有教做衣服的网站吗
  • 网站建设程序员flash教程网站都有哪些
  • 五大门户网站仿 手机 网站模板html源码
  • 比赛网站开发网站建设排名的公司
  • 南宁网站建站网站开发的开发语言
  • 携程旅游网官方网站 做攻略竞价账户托管
  • 做网站设计师要提供什么广州营销推广网站
  • 用wordpress建站关键词优化排名软件
  • MIUI官方网站开发版百度文章收录提交入口
  • 网站美化自己做网站是不是需要写代码
  • 学校网站建设营运预算电子商务平台经营者制定平台服务协议和交易规则时
  • 做彩票网站程序违法吗怎么申请一个免费的网站
  • ui做交互式网站吗wordpress缓存头像