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

深圳外贸网站怎么建免费软件有哪些

深圳外贸网站怎么建,免费软件有哪些,空间网架,上海轨道交通建设查询网站#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.hkea.cn/news/14423868/

相关文章:

  • 网站建设项目管理绩效情况分析旅游网站开发毕业设计论文
  • ps做的网站做影视网站推荐哪个服务器
  • wordpress著名网站浏览器网站设置在哪里
  • 深圳app网站建设国外vps
  • 广东深圳龙岗区邮政编码外贸seo关键词
  • 网站的基本要素网站制作教程步骤
  • 可以免费观看电影的网站logo网站有哪些
  • 哪个网络公司做网站好点做个小程序需要花多少钱
  • 网站建设整改实施方案wordpress 图片 视频
  • 小网站关键词上海的设计网站有哪些
  • 网站盗号怎么做可编辑wordpress主题
  • 运营一个网站一年费用网页工具在哪里
  • 1g内存的服务器可以建设几个网站百度推广登录平台app
  • cms如何做中英网站德州建设公司网站
  • 石家庄做网站邮箱电话idc空间商网站源码
  • 教育类手机网站模板下载网页前端是什么工作
  • 邢台 网站建设无锡网站建设wkstt
  • 济宁网站建设吊装小满crm外贸系统
  • 网站交换链接如何实施宣传视频制作app免费
  • 做网站注意事项律师如何在网上推广
  • 网站建设建材施工企业成本管理
  • 网站空间服务第1ppt模板免费下载
  • 怎么把网站排名优化网站软件免费下载大全
  • php视频网站开发做流程图网站
  • 类似链家网站建设方案做seo用哪种建站程序最好
  • 做网站4核是什么意思哪些人做数据监测网站
  • 电商平台入驻条件青岛seo网站管理
  • 昆明网站制作在线知名的网站制作
  • 苏州建网站必去苏州聚尚网络抖音关键词排名优化
  • 网站开发app定制网站建设及空间