我的网站开发技术经验总结 我的网站开发技术经验总结
首页

fangdown

我的网站开发技术经验总结
首页
  • 认识ESM
  • chrome-talend插件,类似postman
  • sequelize 使用及技巧
  • UML工具Power Designer建表
  • sequelize相关操作文档
  • 解决抖音获取签名及并发的问题
  • 记一次解决抖音分享页混淆字体,字体图标转UID解决方案
  • 获取抖音用户作品列表信息
  • 获取抖音用户作品列表信息-进阶
  • 获取抖音用户作品列表信息-进阶3
  • 如何根据抖音号获取用户信息
  • 获取用户最新视频
  • 模块化-import和require的区别
  • eslint规范
  • js容错处理
  • js-数组分组,执行promise
  • reduce使用遇到的问题
  • 正则匹配html的元素内容
  • taro 小程序 弹窗层禁止底部滚动
  • 公众号签名问题
  • CentOS7中MariaDB重置密码
  • nginx多域名配置
  • node访问接口,得到乱码的结果,原因-Accept-Encoding
    • 现状
    • 分析原因
    • 解决问题
      • 为什么呢
    • 总结
  • node写文件到json中
  • node抓取html内容
  • Node.js使用ES6语法
  • express 使用cors中间件解决跨域
  • node + express + session + redis 进行持久化缓存
  • node中读取文件夹,获取文件名称
  • pm2常用命令
  • 使用pm2管理后台node服务
  • typescript puppeteer支持window及document属性
  • node读取json文件
  • node中使用redis缓存
  • node + github的webhook完成自动部署
  • vuepress-blog的性能优化-CDN
  • CENTOS7下安装REDIS
  • promise then和catch的学习和使用
  • promise在循环中的串行并行用法
  • puppeteer常用知识
  • centos部署安装puppeteer
  • python的学习和使用
  • Taro+TypeScript - Mobx实践
  • 爬虫系列 --- 反爬机制和破解方法汇总
  • 安全-html转码
  • taro中使用animation动画
  • charles 使用
  • Mac下VSCode设置iTerm2终端样式
  • centos一步步完成站点部署
  • 云闪付做地铁的思路
  • 准备技能
  • 备案pc项目介绍
  • 备案小程序项目介绍
  • 小程序二维码扫码功能
  • 小程序域名组件开发
  • 小程序添加水印
  • 规则引擎优化
  • 记一次hooks代替redux的经历
  • 通过nodejs+koa+stream进行服务端图片代理
  • nodeJs接入log4j日志
  • nodejs+typescript项目中添加全局global属性
  • create-react-app 安装 bizcharts 项目崩溃
  • 使用MutationObserver监控dom的变化
  • 服务器重启后启动相关服务
  • moment国际化的问题
  • 项目经验
fangdown
2019-11-06
目录

node访问接口,得到乱码的结果,原因-Accept-Encoding

# 现状

node访问接口,设置了headers头部, 得到乱码的结果

  headers: {
    Host: "xxx.com",
    Connection: "keep-alive",
    Accept: "*/*",
    Cookie: "install_id=91648520549; ttreq=1$780a8fc58fe4b8d415be0af900355bfda5b55fcb; d_ticket=0c335ce549098e426120341e1f5d33a8ec2e1; odin_tt=ef8cf61222b33aa8ea17fbd98d583afbc5d9dfea6d8312d355e4ff824caeafba92a4e9da6196fbd246a3365232fb29aa",
    "Content-type": 'application/json; charset=utf-8',
    "Accept-Encoding": "gzip, deflate",
    "x-tt-token":"000c2f72735ade685f370d832c3ea4d2549d057cbeb7b24350b15572702d25077074f2540c27f20a6cca49dab3b899cc6135",
    "x-tt-trace-id": "00-2bf9d1b523bb14393a86df70063862db-2bf9d1b523bb1439-01",
    "x-ss-dp": "1128",
    "user-Agent": "Aweme 8.3.1 rv:83101 (iPhone; iOS 10.2; zh_CN) Cronet",
    "x-gorgon": "830000000000e489e4ebb28e071f1455c00e85d18b496702ae36",
    "x-khronos": "1573111585",
    "sdk-version": "1"
  },

# 分析原因

  • 在postman中访问可以得到正确的json对象
  • 因为需要加头部信息所以不能用浏览器测试

~ 大概率问题是出现在头部上

# 解决问题

  • 在网上找找原因
  • 删除部分头部字段,分析结果

最后通过删除Accept-Encoding 得到了正确的结果

# 为什么呢

那是因为,浏览器对于从服务器中返回的对应的gzip压缩的网页,会自动解压缩,所以,其request的时候,添加对应的头,表明自己接受压缩后的数据。 而我们在node中访问, 如果增加了这个反而出现问题,无法解释压缩后的数据,node需要的直接的json对象。 postman估计也做了解压处理,所以能正常。

# 总结

还是对头部字段认识程度不够,只能搬来搬去,而不能从根本上理解,这方面需要加强。

#node
上次更新: 2021/12/19, 18:05:42
nginx多域名配置
node写文件到json中

← nginx多域名配置 node写文件到json中→

最近更新
01
多分支修复撞车的问题
05-01
02
如何成为架构师
01-23
03
服务器部署全过程
11-23
更多文章>
Theme by Vdoing | Copyright © 2019-2026 fangdown | 粤ICP备19079809号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式