之前学习的时候,都会看到网络上一些在线工具的网站,比如获取时间戳,编码转化,正则表达式等等,这些对于一些初学者在电脑上没有安装相对应的工具,往往就会百度搜索在线工具,然后就能实现自己所要完成的目的。
这些工具很是方便,或多或少都会用到。但一些在线工具并不能满足我日常开发中的个别需求,于是乎我也准备自己写一个这样的在线工具网站。不过这里肯定不会像其他网站那种搞得花里胡哨的,同时也不会去重复的造轮子,这样很没有意义。
顺便也记录下这类工具的编写以及用途
技术栈
有一段时间没怎么写 React 了,同时对 mui 组件库感兴趣,于是这次的使用 React 和 material 设计风格的组件库来进行编写,使用到 create-react-app 脚手架进行开发,同时使用 TypeScript 进行编写。
该纯前端,无任何后端交互部分。
不做代码分析与演示,可自行在网站上测试与 clone 源码进行查看。
功能
查询字符串与 json 转化
如果是在协议复现的话,有些包的请求体是通过查询字符串来拼接的,也 就是协议头Content-Type:application/x-www-form-urlencoded
,请求体如 username=kuizuo&password=a123456
,一般情况下都不会采取字符串来进行替换,而是转成 json 格式,如 { "username":"kuizuo","password","a123456"}
然后使用一些库(querystring)将 json 转成查询字符串的形式。
但是编写代码的时候,需要把抓包得到的查询字符串转成 json,而这也就是这部分的主要功能。
不过 js 本身是不支持 gbk 编码的,遇到使用 gbk 进行 url 编码的网站就需要自定义先将原文本进行 gbk 编码或解码然后才进行转化操作。
Cookie 与 json 转化
和查询字符串与 json 转化功能类似,只不过是将 cookie 文本与 json 互转。
URL UTF8 与 GBK 编码
有些国内网站上可能会使用 GBK 编码,但大多数语言默认都是 UTF8 编码,如果编码格式错误,后端接收到的请求必定失败。在这里我是使用到gbk-nice这个库,可以达到 gbk 版的encodeURIComponent
与decodeURIComponent
,与 js 自带的encodeURIComponent
和decodeURIComponent
也就是 gbk 与 utf-8 编码的区别。