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

推荐的网站制作建设一个网站可以采用哪几种方案

推荐的网站制作,建设一个网站可以采用哪几种方案,全栈网站开发流行框架,小规模企业所得税5%#1 问题描述 在基于Spring Boot的项目中实现了请求转发#xff08;使用 RestTemplate 的 exchange 方法#xff09;的功能#xff0c;忽然在前端报net::ERR_CONTENT_DECODING_FAILED 200 (OK)的错误#xff0c;后端及上游系统日志均显示请求已完成。 #2 原因探寻 上述错…#1 问题描述 在基于Spring Boot的项目中实现了请求转发使用 RestTemplate 的 exchange 方法的功能忽然在前端报net::ERR_CONTENT_DECODING_FAILED 200 (OK)的错误后端及上游系统日志均显示请求已完成。 #2 原因探寻 上述错误字面意思为内容解码失败就是说浏览器拿到后端数据后没办法正常解码。此时我们看看请求响应的编码 可以看到上游系统启用了响应压缩然后中转系统读取方式为 restTemplate.exchange(entity, String::class.java)故当上游系统的响应启用压缩后中转系统按String读取再返回给前端浏览器拿到数据后通过响应头识别到是gzip编码则尝试解压导致前面出现的异常。 #3 修复 要修复其实也很简单在中转系统中用字节数组格式读取响应即可兼容上游系统的各种格式的响应完整代码如下 class ServiceRoute {val logger LoggerFactory.getLogger(javaClass)val restTemplate RestTemplate().also { }fun redirect(request:HttpServletRequest, response:HttpServletResponse, targetUrl:String, extraHeaders: MapString, String??null):ResponseEntityByteArray {val entity createRequestEntity(request, targetUrl, extraHeaders)return restTemplate.exchange(entity, ByteArray::class.java)}Throws(URISyntaxException::class, IOException::class)private fun createRequestEntity(request: HttpServletRequest, url: String, extraHeaders: MapString, String??): RequestEntity* {val httpMethod HttpMethod.valueOf(request.method)val headers parseRequestHeader(request)extraHeaders?.forEach { (k, v) - headers.add(k, v) }//将原始请求转换为字节数组val body StreamUtils.copyToByteArray(request.inputStream)return RequestEntityAny(body, headers, httpMethod, URI(url))}/*** 复制原始请求的 header 信息*/private fun parseRequestHeader(request: HttpServletRequest): MultiValueMapString, String? {val headers HttpHeaders()val headerNames: ListString Collections.list(request.headerNames)for (headerName in headerNames) {val headerValues: ListString Collections.list(request.getHeaders(headerName))for (headerValue in headerValues) {headers.add(headerName, headerValue)}}return headers} }使用示例 RequestMapping(route/**, name 转发请求) fun redirect(response:HttpServletResponse):ResponseEntity* {val path request.servletPath.replace(/route/, )return try{//自定义请求头val extraHeaders mapof(from to 中介系统)route.redirect( request, response, http://localhost:8080/${path}, extraHeaders ).also {//此处可查看返回内容}}catch (e:Exception) {logger.error([SERVICE-ROUTE] 转发失败, e)ResponseEntity(e.message, HttpStatus.INTERNAL_SERVER_ERROR)}finally {//此处可以做一些后续操作} }
http://www.w-s-a.com/news/659001/

相关文章:

  • 树莓派可以做网站的服务器吗网站建设与设计ppt
  • 网站访问速度分析网站怎么做让PC和手机自动识别
  • 网站建设要考西宁网站建设多少钱
  • 网站开发公司东莞网站推广计划书具体包含哪些基本内容?
  • 素材天下网站惠州网站建设行业
  • 网站做a视频在线观看网站天津建站
  • 自己做的网站怎么链接火车头采集一个网站可以做几级链接
  • 济南网站制作哪家专业做网站怎样投放广告
  • 辽宁网站推广短视频运营培训学费多少
  • 拼多多网站怎么做翻译 插件 wordpress
  • 做网站运营的职业生涯规划wordpress分类显示图片
  • 网站建设与制作总结沈阳百度广告
  • 网站管理系统 手机会员制网站搭建wordpress
  • 做物品租赁网站清新wordpress主题
  • 优秀专题网站家居企业网站建设市场
  • 中山市有什么网站推广wordpress轻应用主机
  • 洗头竖鞋带名片改良授权做网站不贵整个世界
  • 设计电子商务网站建设方案微信如何开发自己的小程序
  • 建设网站公司哪里好相关的热搜问题解决方案做网站要看什么书
  • 网站建设重要性黄岐建网站
  • 做网站电销《电子商务网站建设》精品课
  • 地方商城网站海外网站推广方法
  • 乐山 网站建设安阳给商家做网站推广
  • 网站空间一般多大邢台网站建设有哪些
  • h5网站开发工具有哪些wordpress清空post表
  • 公司开网站干嘛怎么制作一个免费的网站模板
  • 群晖wordpress搭建网站网站建设及管理
  • 中山企业网站建设公司抖音代运营合作模式
  • 南通营销网站开发做网站页面多少钱
  • 桂林生活网官方网站云主机和云电脑的区别