Rumah > pembangunan bahagian belakang > Golang > Menggunakan bahasa go untuk melaksanakan API terjemahan Baidu untuk terjemahan Cina dan Inggeris

Menggunakan bahasa go untuk melaksanakan API terjemahan Baidu untuk terjemahan Cina dan Inggeris

WBOY
Lepaskan: 2023-08-05 08:57:18
asal
1409 orang telah melayarinya

Gunakan bahasa Go untuk melaksanakan API Terjemahan Baidu untuk terjemahan Cina-Inggeris

1. Pengenalan

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.

2. Persediaan

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"
}
Salin selepas log masuk

3. Pelaksanaan kod

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"
)
Salin selepas log masuk

Seterusnya, kita perlu melaksanakan fungsi untuk menjana tandatangan Peraturan penjanaan khusus adalah seperti berikut:

  1. Isih parameter permintaan dalam susunan abjad mengikut kekunci.
  2. Sambung rentetan asal yang diminta dengan Kunci Rahsia dan lakukan penyulitan MD5.
  3. Tukar rentetan yang disulitkan kepada huruf besar.

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)
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

4. Menjalankan hasil

Lakukan arahan berikut dalam terminal:

go run main.go
Salin selepas log masuk

Program ini akan memanggil API Terjemahan Baidu untuk menterjemah "Hello, World!"

5. Ringkasan

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan