【青训营】小程序

89 阅读1分钟

这是我的第2篇笔记

小程序

猜数字

reader := bufio.NewReader(os.Stdin)

获取os.Stdin的bufio,是终端输入

reader.ReadString(byte)以某个byte或者字符结束输入

strings.TrimSuffix(input, "\r\n")去掉换行符,,windows是\r\n

strconv.Atoi(input)转为数字

\

命令行查单词

主要步骤

  • 写好网站的请求和JSON对应的Go结构体
  • client := &http.Client{} 设置客户端
  • buf, err := json.Marshal(request) 编码请求体,返回一个能接收这个请求的[]byte
  • var data = bytes.NewReader(buf) 返回一个输入流,把输入存在buf里
  • req, err := http.NewRequest(method, url, data) 生成一个请求
  • req.Header.Set() 设置一系列的头
  • resp, err := client.Do(req) 发生请求,并接收响应,如果有err,则中断
  • defer resp.Body.Close() 拿到响应后第一时间用defer函数关源
  • bodyText, err := ioutil.ReadAll(resp.Body) 使用ioutil来输入[]byte
  • resp.StatusCode != 200 是200就不要了
  • err = json.Unmarshal(bodyText, &dictResponse) 解码JSON,把bodyText的JSON数据写入JSON对应的Go结构体
  • 解码成功就可以按照JSON的字段输出自己想要的东西,如输出英标和单词意思

fmt.Println(word, "UK:", dictResponse.Dictionary.Prons.En, "US:", dictResponse.Dictionary.Prons.EnUs)
for _, item := range dictResponse.Dictionary.Explanations {
fmt.Println(item)
}

\

\

请求和响应代码生成

目标--fanyi.caiyunapp.com/#/

在做一个翻译后,点开network,查看dict为post的,右键它copy

再去这个网站自动生成请求代码

curlconverter.com/#go

选择语言复制代码

\

转化JSON为结构体

复制浏览器的JSON,复制全部,----去firfox比较好,其他失败了,不知道为什么

自己写一个请求结构体

把这个post的dict的响应复制下来

去这这个网站JSON转为为go的结构体

oktools.net/json2go

自己写的dict

请求变化的js

salt是newtime

sign是md5('new-fanyiweb' +nowTime() + 'ydsecret://newfanyiweb.doctran/sign/0j9n2{3mLSN-$Lg]K4o0N2}' + "./utils")

\