百度翻译APi接⼝实现
案例使⽤百度翻译API接⼝,实现⽂本翻译
为保证翻译质量,请将单次请求长度控制在 6000 bytes以内。(汉字约为2000个)
签名⽣成⽅法如下:
1、将请求参数中的 APPID(appid), 翻译query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥(可在查看)
按照 appid+q+salt+密钥的顺序拼接得到字符串1。
2、对字符串1做md5,得到32位⼩写的sign。
注意:
1、请先将需要翻译的⽂本转换为UTF-8编码
2、在发送HTTP请求之前需要对各字段做。
3、在⽣成签名拼接 appid+q+salt+密钥字符串时,q不需要做URL encode,在⽣成签名之后,发送HTTP请求之前才需要对要发送的待翻译⽂本字段q做URL encode。
将apple从英⽂翻译成中⽂:
请求参数:
q=apple
from=en
to=zh
appid=2015063000000001
salt=1435660288
平台分配的密钥: 12345678
⽣成sign:
>拼接字符串1
拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678
得到字符串1 =2015063000000001apple143566028812345678
>计算签名sign(对字符串1做md5加密,注意计算md5之前,串1必须为UTF-8编码)
sign=md5(2015063000000001apple143566028812345678)
sign=f89f9594663708c1605f3d736d01d2d4
完整请求为:
也可以使⽤POST⽅法传送需要的参数。
public string BaiduFanYi()
{
string q = "苹果";
string appId = "159357147258369";
string password="1s5d8d6g5f8cd4d5";
//⽬标语⾔
string to = "en";
//源语⾔
string from = "zh";
//获得随机数
string randomnum = System.DateTime.Now.Millisecond.ToString();
//获得需要加密的字符串
string index =appId+q+randomnum+password ;
//进⾏加密
string MD5Sign = GetMD5(index);
/
/创建连接地址
string url = string.Format("api.fanyi.baidu/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);
return FanYi;
}
///<summary>
/// MD5加密
///</summary>
///<param name="input">要加密的⽂本</param>
///<returns></returns>
public string GetMD5(string input)
{
//判断是否为空
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();
random翻译//寻黄将哈需数据的每⼀个字节格式化为16进制字符串
for(int i=0;i<data.Length;i++)
{
sb.Append(data[i].ToString("x2"));
}
//返回16进制字符串
return sb.ToString();
}
上⽂中APPid以及password纯属虚构,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论