Gunakan bahasa Go untuk melaksanakan API Terjemahan Baidu untuk terjemahan Cina-Inggeris
Dengan perkembangan Internet, komunikasi antara orang menjadi semakin kerap, dan masalah komunikasi antara bahasa yang berbeza secara beransur-ansur menjadi ketara . Untuk menyelesaikan masalah ini, Baidu menyediakan API terjemahan yang berkuasa yang boleh mencapai terjemahan segera antara bahasa Cina dan Inggeris. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk memanggil API Terjemahan Baidu dan memberikan contoh kod yang sepadan.
Pertama, kita perlu mencipta aplikasi API terjemahan pada Platform Pembangun Baidu dan mendapatkan Kunci API dan Kunci Rahsia yang sepadan. Cipta fail config.json dalam direktori akar projek untuk menyimpan maklumat sensitif ini.
{ "APIKey": "your_api_key", "SecretKey": "your_secret_key" }
Pertama, kami perlu memperkenalkan pakej dan alatan yang sepadan.
package main import ( "crypto/md5" "encoding/hex" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url" "strings" "time" )
Seterusnya, kita perlu melaksanakan fungsi untuk menjana tandatangan Peraturan penjanaan khusus adalah seperti berikut:
Berikut ialah pelaksanaan kod yang sepadan:
func generateSign(query string, salt string, secretKey string) string { h := md5.New() h.Write([]byte(secretKey + query + salt)) sign := hex.EncodeToString(h.Sum(nil)) return strings.ToUpper(sign) }
Seterusnya, kami perlu melaksanakan fungsi untuk menghantar permintaan HTTP dan mendapatkan hasil terjemahan yang sepadan.
func translate(query string, from string, to string) string { // 加载API Key和Secret Key configFile, err := ioutil.ReadFile("config.json") if err != nil { panic("Failed to read config file.") } var config struct { APIKey string `json:"APIKey"` SecretKey string `json:"SecretKey"` } err = json.Unmarshal(configFile, &config) if err != nil { panic("Failed to parse config file.") } // 构造请求参数 params := url.Values{} params.Set("q", query) params.Set("from", from) params.Set("to", to) params.Set("appid", config.APIKey) // 生成salt和sign salt := fmt.Sprintf("%d", time.Now().UnixNano()) sign := generateSign(query, salt, config.SecretKey) // 构造请求URL apiURL := fmt.Sprintf("https://fanyi-api.baidu.com/api/trans/vip/translate?%s&salt=%s&sign=%s", params.Encode(), salt, sign) // 发送HTTP请求 resp, err := http.Get(apiURL) if err != nil { panic("Failed to send request to Baidu Translate API.") } defer resp.Body.Close() // 解析响应体 body, err := ioutil.ReadAll(resp.Body) if err != nil { panic("Failed to read response body.") } // 解析JSON数据 var data struct { TransResult []struct { Src string `json:"src"` Dst string `json:"dst"` } `json:"trans_result"` } err = json.Unmarshal(body, &data) if err != nil { panic("Failed to parse response body.") } // 获取翻译结果 translation := data.TransResult[0].Dst return translation }
Akhir sekali, kita perlu melaksanakan fungsi utama untuk menguji fungsi terjemahan.
func main() { query := "Hello, World!" from := "auto" to := "zh" translation := translate(query, from, to) fmt.Println(translation) }
Lakukan arahan berikut dalam terminal:
go run main.go
Program ini akan memanggil API Terjemahan Baidu untuk menterjemah "Hello, World!"
Artikel ini memperkenalkan secara terperinci cara menggunakan bahasa Go untuk melaksanakan API Terjemahan Baidu untuk terjemahan bahasa Cina dan Inggeris. Dengan memanggil API Terjemahan Baidu, kami boleh mencapai terjemahan segera antara bahasa yang berbeza dengan mudah. Saya harap artikel ini berguna kepada anda, terima kasih kerana membaca!
Atas ialah kandungan terperinci Menggunakan bahasa go untuk melaksanakan API terjemahan Baidu untuk terjemahan Cina dan Inggeris. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!