Go语言使用百度翻译api
Go语言使用百度翻译api
之前做过一个使用百度翻译api的工具,这个工具用于用户的自动翻译功能,是使用C#调用百度翻译api接口,既然在学习Go语言,那必然也是要使用Go来玩耍一番。这里我是这么安排的,使用go做一个web服务,界面就用H5,然后使用用批处理写个脚本,打开go程序,然后打开浏览器(谷歌浏览器)访问。用户可以在浏览器网页中操作,好吧这里的用户估计就只有我会用吧。其中百度翻译api中的sign需要计算md5,那么Go中是如何计算md5的呢?参考如下:
package mainimport("fmt""crypto/md5""encoding/hex"
)
//计算文本的md5值
func SumString(content string) string{md5Ctx := md5.New()md5Ctx.Write([]byte(content))bys := md5Ctx.Sum(nil)//bys := md5.Sum([]byte(content))//这个md5.Sum返回的是数组,不是切片哦value := hex.EncodeToString(bys)return value
}
func main(){value := SumString("hello")fmt.Println(value)
}
以下是完整调用百度翻译API的代码:
package mainimport("fmt""crypto/md5""encoding/hex""net/http""time""net/url""io/ioutil""strconv"
)
//申请的信息
var appID = 你的appid
var password = 你的密钥
//百度翻译api接口
var Url = "http://api.fanyi.baidu.com/api/trans/vip/translate"
type TranslateModel struct{Q stringFrom stringTo stringAppid intSalt intSign string
}
func NewTranslateModeler(q, from, to string) TranslateModel{tran := TranslateModel{Q: q,From: from,To: to,}tran.Appid = appIDtran.Salt = time.Now().Second()content := strconv.Itoa(appID) + q + strconv.Itoa(tran.Salt) + passwordsign := SumString(content)//计算sign值tran.Sign = signreturn tran
}
func (tran TranslateModel) ToValues() url.Values{values := url.Values{"q": {tran.Q},"from": {tran.From},"to": {tran.To},"appid":{strconv.Itoa(tran.Appid)},"salt": {strconv.Itoa(tran.Salt)},"sign": {tran.Sign},}return values
}
//计算文本的md5值
func SumString(content string) string{md5Ctx := md5.New()md5Ctx.Write([]byte(content))bys := md5Ctx.Sum(nil)//bys := md5.Sum([]byte(content))//这个md5.Sum返回的是数组,不是切片哦value := hex.EncodeToString(bys)return value
}
func main(){tran := NewTranslateModeler("世界第一223", "zh", "cht")values := tran.ToValues()resp, err := http.PostForm(Url, values)if err != nil{fmt.Println(err)return}defer resp.Body.Close()body, err := ioutil.ReadAll(resp.Body)if err != nil{fmt.Println(err)return}txt := string(body)fmt.Println(txt)
}
这是输出信息:
{"from":"zh","to":"cht","trans_result":[{"src":"\u4e16\u754c\u7b2c\u4e00223","dst":"\u4e16\u754c\u7b2c\u4e00223"}]}
这里得到的是Unicode编码的字符,如何将这里的Unicode转码?这个目前找了一下,还没有找到合适的方法进行转换。
转载于:https://www.cnblogs.com/zzr-stdio/p/9938289.html
Go语言使用百度翻译api相关推荐
- python调用百度翻译-Python 调用百度翻译API
由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...
- Python 小工具:调用「百度翻译API」实现英汉互译及多语言翻译
Python 小工具:调用「百度翻译 API」实现英汉互译及多语言翻译 API 简介 过程详解 完整代码 结果展示 附:官方 Demo - Python 2 版本 Python 小工具:调用「百度翻译 ...
- 精简版_翻译软件,基于百度翻译api
软件开发动机 虽然现在的翻译软件很多,但是而国内的翻译软件极为臃肿,包含了大量不需要的功能,以及各种广告及推广(呵呵--),所以自己用百度翻译api做了一个精简版的翻译软件,平常自用. 待实现的功能: ...
- python 英语翻译 excel_Python调用百度翻译api批量翻译Excel这工作效率
目录 背景 实现Excel表批量翻译,解除百度翻译一次只能5000字数的限制. 源代码 百度翻译api 这里直接使用大佬已经写好的代码,自己稍加改动.账号密码需要自行去百度翻译开放平台注册.翻译语言 ...
- js 使用百度翻译api demo
js 使用百度翻译api demo 详情请看官网 https://api.fanyi.baidu.com/ 我所使用的是通用翻译api 各语言: <!doctype html> <h ...
- C#调用百度翻译API
使用示例: 百度返回的结果是分段的,可以发送带有换行的文字翻译. 但获取翻译结果时不能带有换行. 含有大量文档注释,按住ctrl然后鼠标点击链接可以跳转到链接 完整的语种列表可以使用包含类Langua ...
- 一个Qt调用百度翻译API进行文本翻译的程序记录,辅助ts文件进行翻译。
项目要求有多国语言翻译,但是手动的去复制粘贴翻译显然不是合理的,组里有人写过类似工具,但是我这里没有源码,又想根据我的需求定制一些功能,所以借鉴现有的界面,如下图 下面先搞定核心功能:百度翻译api的 ...
- python调用百度翻译api+离线语种检测
百度翻译api调用(具体参考的哪篇博文找不到了,好几篇太像了,原作者留意到可以告知我改转载附上链接): import urllib, hashlib import random import requ ...
- 使用百度翻译api制作自己的字典
首先,这是一个java web项目.所以我们要创建一个web项目,使用工具eclipse. 创建完成项目后,在WebContent下创建css和js文件夹,用来存放静态资源文件,在WebContent ...
最新文章
- NLLLoss CrossEntropyLoss Pytorch
- python判断输入类型怎么做_如何检查输入类型?
- 网易前端微专业,JavaScript程序设计基础篇:数组
- CF785D Anton and School - 2
- jzoj3895-数字对【RMQ,GCD,二分答案,单调队列】
- TQ210——时钟系统
- mac 安装mysql怎么卸载不干净_CleanMyMac卸载不干净怎么办?如何彻底删除Mac上的CleanMyMac?...
- 记一次lvs-tunnel模式的故障分析(7)
- 7-2 天梯地图 (30分)_「月夜枫YYF」不会吧不会吧,枫哥失守8000分阵地!
- python自动化操作网页游戏_用Python脚本做一些网页游戏中力所能及的自动化任务...
- 谈谈工业App (1)
- win10下Miracast无线投屏使用教程及异常解决方案(超详细)
- vb.net 画多个矩形_电气原理图和接线图识图方法,电气接线图怎么画?你会画吗?...
- MT6762/MT6763处理器参数比较,MT6762参考设计资料介绍
- 基于AT91SAM7se512的串口通讯的实现
- Qt学习之使用QLabel实现超链接(点击QLabel直接跳转到网页链接)
- Datax下载、安装、定时同步配置
- iOS 调用TouchID 身份验证
- 为什么自动驾驶遇瓶颈,但自动代客泊车却很热?
- spring Boot Configuration Annotation Processor not fount in classpath