Golang 基础 | 青训营笔记

69 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

今天的课程主要讲解了 Go 语言的基础语法与常用包,以及讲解了三个实战案例,因为之前已经接触了 Go 语言,因此本次课程对我来说最重要的是学习了一些工具网站以及浏览器工具的使用,以词典程序为例,我们先通过 Chrome 的开发者工具成功获取到 cURL,如图(记得要选择 bash 而不是 cmd 喔)

image.png

接着又通过 工具网站 将刚刚复制到的 cURL 得到了请求彩云小译的 Go 语言代码

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"strings"
)

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`{"trans_type":"en2zh","source":"good"}`)
	req, err := http.NewRequest("POST", "https://api.interpreter.caiyunai.com/v1/dict", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("authority", "api.interpreter.caiyunai.com")
	req.Header.Set("accept", "application/json, text/plain, */*")
	req.Header.Set("accept-language", "zh-CN,zh;q=0.9")
	req.Header.Set("app-name", "xy")
	req.Header.Set("content-type", "application/json;charset=UTF-8")
	req.Header.Set("device-id", "")
	req.Header.Set("origin", "https://fanyi.caiyunapp.com")
	req.Header.Set("os-type", "web")
	req.Header.Set("os-version", "")
	req.Header.Set("referer", "https://fanyi.caiyunapp.com/")
	req.Header.Set("sec-ch-ua", `"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"`)
	req.Header.Set("sec-ch-ua-mobile", "?0")
	req.Header.Set("sec-ch-ua-platform", `"Windows"`)
	req.Header.Set("sec-fetch-dest", "empty")
	req.Header.Set("sec-fetch-mode", "cors")
	req.Header.Set("sec-fetch-site", "cross-site")
	req.Header.Set("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36")
	req.Header.Set("x-authorization", "token:qgemv4jr1y38jyq6vhvi")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

再通过 另外一个工具网站 将 JSON 格式的数据转换成 Go 语言的结构体,最终经过一系列的优化后,我们成功得到了词典程序的代码

在 SOCKS5 代理中,同样使用到了一个 nc 的命令行工具,通过搜索引擎,在 windows nc - 腾讯云开发者社区-腾讯云 (tencent.com) 这篇博客的帮助下,成功在 windows 系统中安装了 nc 工具

本次课程接触到了很多开发工具已经它们的使用方法,正所谓“工欲善其事,必先利其器”,工具的使用在我们的学习过程中也是极为重要的