02-go语言的实战 | 青训营笔记

41 阅读2分钟

1、猜数字

这个项目没啥好玩的,随便看看。

2、在线字典 - 生成代码解读

(1)抓包(重点!)

首先去下面这个网址

fanyi.caiyunapp.com/#/

然后按f12 打开network

然后输入good,查看Network里面的dict

这里windows下面复制要选择

copy as cURL(bash) 来进行复制,

不然在粘贴到curlconverter.com/go/的时候会报错

这里算是我踩的一个小坑吧。

json序列化

go语言只需要构造一个结构体,这个结构体的字段名字和json的结构是一一对应的,然后直接调用json.Marshal()方法即可

json.Marshal返回的是一个byte数组不是一个真正的字符串,需要用bytes.NewReader()方法。这样就和strings.NewReader 的字符串是一样的。

反序列化

goland最适合的方式是和response处理一样,写一个结构体,结构体的字段和response是一一对应的,然后把json字符串反序列化到字符里面。但是浏览器里面的结构太复杂了。所以有个简便的方法,代码生成。

oktools.net/json2go

注意:我的项目不能正常运行,看了一下代码。发现我的导入的包不对,我第五行是 io 而不是 io/ioutil。并且41行使用的是io方法而不是ioutil方法,我也很奇怪。

然后运行项目报错:需要运行的时候加上一个参数,看老师运行的命令。 go run .../main.go hello 需要加上hello,不然会报错。

总结

学到这个项目,给我最大的体会就是善于利用抓包和一些工具进行处理,比自己傻傻的写代码要好得多。像很复杂的东西说不定有很多恨巧妙的方法可以进行快速高效的处理。我最大的收获就是 curlconverter.com/go/curlconverter.com/go/这两个网站和抓包的使用。