百度翻译API

这是在我开发幼儿英语学习软件”趣听说“时遇到的问题,需要英汉互译,Unity3d引擎,VS2017平台,查询了很多资料,结合网上的接口教程,实现了3种方法,但也有缺陷,如果有更好的办法,欢迎交流,代码 如下:

using LitJson;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using UnityEngine;
[System.Serializable]
public class GetResult
{
    public string from;
    public string to;
    public List<finalresult> trans_result;
}
[System.Serializable]
public class finalresult
{
    public string src;
    public string dst;
}
public class testt : MonoBehaviour
{
    void Start()
    {
        string c = BaiduFanYi("today is sunday!");
        Debug.Log(c);
    }
    public string BaiduFanYi(string Input)// 英文转中文
    {
        string q = Input;
        string appId = "20180305000131214";      //密钥需简单注册获取。
        string password = "vNKjuXFap0dMBtadDjAo";
        //源语言
        string from = "en";  
        //目标语言
        string to = "zh";
        //获得随机数
        string randomnum = System.DateTime.Now.Millisecond.ToString();
        //获得需要加密的字符串
        string index = appId + q + randomnum + password;
        //进行加密
        string MD5Sign = GetMD5(index);
        //创建连接地址
        string url = string.Format("http://api.fanyi.baidu.com/api/trans/vip/translate?q={0}&from={1}&to={2}&appid={3}&salt={4}&sign={5}",q, from, to, appId, randomnum, MD5Sign );
        WebClient wc = new WebClient();
        string FanYi = wc.DownloadString(url);
        Debug.Log(FanYi);

        //JsonData date = JsonMapper.ToObject(FanYi);                 //方法1,引入 LitJson.dll即可;
        //return date["trans_result"][0]["dst"].ToString();

        //GetResult result = new GetResult();                         //方法2
        //JsonUtility.FromJsonOverwrite(FanYi, result);
        //return result.trans_result[0].dst;

        GetResult result = JsonUtility.FromJson<GetResult>(FanYi);    //方法3
        return result.trans_result[0].dst;

        
    }
    public string GetMD5(string input)// MD5加密
    {
        if (input == null)
        { return null;}
        //创建MD5哈希表的默认实例
        MD5 md = MD5.Create();
        //将要加密的字符串转换为字节数组
        byte[] buffer = Encoding.UTF8.GetBytes(input);
        //计算指定的字节数组的哈希值
        byte[] data = md.ComputeHash(buffer);
        StringBuilder sb = new StringBuilder();
        //寻黄将哈需数据的每一个字节格式化为16进制字符串
        for (int i = 0; i < data.Length; i++)
        {
            sb.Append(data[i].ToString("x2"));
        }
        //返回16进制字符串
        return sb.ToString();
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值