这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
所学知识:
- 基本语法
- 结构体用法
- 常用api,如获取时间戳:Unix方法;json序列化与反序列化:Marshal与Unmarshal方法等等
go语言案例--调用翻译api:
1. 编写请求结构体,结构体内容与请求内容一致
2.编写响应结构体
复制响应参数到网址:JSON转Golang Struct - 在线工具 - OKTools
3.编写查询方法
复制cURL(bash)到网址Convert curl commands to code (curlconverter.com)
- 自定义传入参数
request := DictRequestHS{Language: "en", Text: word}
buf, err := json.Marshal(request)
if err != nil {
log.Fatal(err)
}
var data = bytes.NewReader(buf)
- 自定义输出
if resp.StatusCode != 200 {
log.Fatal("bad StatusCode:", resp.StatusCode, "body", string(bodyText))
}
var dictResponse DictResponseHS
err = json.Unmarshal(bodyText, &dictResponse)
if err != nil {
log.Fatal(err)
}
for _, item := range dictResponse.Words {
for _, item2 := range item.PosList {
for _, item3 := range item2.Explanations {
fmt.Println(item3.Text)
}
}
}
学习中遇到的问题:
1. Invalid input. Please enter an integer value。输入时的数据末尾为"\r\n",但是后面切割数据时只对"\n"进行了切分,因此不正确。
解决方法:
打上断点进行debug
2. 数据字典实验中选择url不起作用,修改为下列的url
3. 运行完代理服务器后无反应
解决方法:
下载netcet,并配置好环境,切换终端进行调试。
心得体会:
go语言相较于Java更加简洁,因此开发会更轻松简单,希望能够更快上手go语言。