`) req.Header.Set("Origin", "https://fanyi.caiyunapp.com") req.Header.Set("Sec-Fetch-Site", "cross-site") req.Header.Set("Sec-Fetch-Mode", "cors") req.Header.Set("Sec-Fetch-Dest", "empty") req.Header.Set("Referer", "https://fanyi.caiyunapp.com/") req.Header.Set("Accept-Language", "zh-CN,zh;q=0.9") // 四、调用cliend.do发送请求,接受响应 resp, err := client.Do(req) // 判断是否请求出错 if err != nil { log.Fatal(err) } // 防止内存泄漏 defer resp.Body.Close() // 五、读取响应体的数据 bodyText, err := ioutil.ReadAll(resp.Body) // // 打印响应的body // fmt.Printf("%s\n", bodyText) // 判断是否出错 if err != nil { log.Fatal(err) } if resp.StatusCode != 200 { log.Fatal("bad StatusCode:", resp.StatusCode, "body:", string(bodyText)) } // 六、解析响应的body // 声明一个响应body节点 var responseData ResponseNode // 反序列化bodyText err = json.Unmarshal(bodyText, &responseData) if err != nil { log.Fatal("解析response出错,", err) } // fmt.Printf("%#v\n", responseData) // fmt.Printf("%#v\n", responseData.Dictionary) // fmt.Printf("%#v\n", responseData.Dictionary.Explanations) // 打印翻译的音标 fmt.Println(word, "UK:", responseData.Dictionary.Prons.En, "US:", responseData.Dictionary.Prons.EnUs) // 打印翻译结果 // 循环range,自带println函数 ans := responseData.Dictionary.Explanations n := len(ans) //翻译的答案的个数 if n == 0 { fmt.Println("ans is empty,please try again.") return } for _, value := range ans { println(value) } } func main() { // 一、动态读取用户输入的英文单词字符串 // fmt.Print("Please input a word to be translated: ") // reader := bufio.NewReader(os.Stdin) // word, err := reader.ReadString('\r') // if err != nil { // fmt.Println("an error occured while reading input.", err) // return // } // word = strings.TrimSuffix(word, "\r") // fmt.Printf("word:%s,len:%d\n", word, len(word)) // 改成命令行读取用户输入 if len(os.Args) != 2 { fmt.Fprintf(os.Stderr, `