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相关推荐

  1. python调用百度翻译-Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

  2. Python 小工具:调用「百度翻译API」实现英汉互译及多语言翻译

    Python 小工具:调用「百度翻译 API」实现英汉互译及多语言翻译 API 简介 过程详解 完整代码 结果展示 附:官方 Demo - Python 2 版本 Python 小工具:调用「百度翻译 ...

  3. 精简版_翻译软件,基于百度翻译api

    软件开发动机 虽然现在的翻译软件很多,但是而国内的翻译软件极为臃肿,包含了大量不需要的功能,以及各种广告及推广(呵呵--),所以自己用百度翻译api做了一个精简版的翻译软件,平常自用. 待实现的功能: ...

  4. python 英语翻译 excel_Python调用百度翻译api批量翻译Excel这工作效率

    目录 背景 实现Excel表批量翻译,解除百度翻译一次只能5000字数的限制. 源代码 百度翻译api 这里直接使用大佬已经写好的代码,自己稍加改动.账号密码需要自行去百度翻译开放平台注册.翻译语言 ...

  5. js 使用百度翻译api demo

    js 使用百度翻译api demo 详情请看官网 https://api.fanyi.baidu.com/ 我所使用的是通用翻译api 各语言: <!doctype html> <h ...

  6. C#调用百度翻译API

    使用示例: 百度返回的结果是分段的,可以发送带有换行的文字翻译. 但获取翻译结果时不能带有换行. 含有大量文档注释,按住ctrl然后鼠标点击链接可以跳转到链接 完整的语种列表可以使用包含类Langua ...

  7. 一个Qt调用百度翻译API进行文本翻译的程序记录,辅助ts文件进行翻译。

    项目要求有多国语言翻译,但是手动的去复制粘贴翻译显然不是合理的,组里有人写过类似工具,但是我这里没有源码,又想根据我的需求定制一些功能,所以借鉴现有的界面,如下图 下面先搞定核心功能:百度翻译api的 ...

  8. python调用百度翻译api+离线语种检测

    百度翻译api调用(具体参考的哪篇博文找不到了,好几篇太像了,原作者留意到可以告知我改转载附上链接): import urllib, hashlib import random import requ ...

  9. 使用百度翻译api制作自己的字典

    首先,这是一个java web项目.所以我们要创建一个web项目,使用工具eclipse. 创建完成项目后,在WebContent下创建css和js文件夹,用来存放静态资源文件,在WebContent ...

最新文章

  1. NLLLoss CrossEntropyLoss Pytorch
  2. python判断输入类型怎么做_如何检查输入类型?
  3. 网易前端微专业,JavaScript程序设计基础篇:数组
  4. CF785D Anton and School - 2
  5. jzoj3895-数字对【RMQ,GCD,二分答案,单调队列】
  6. TQ210——时钟系统
  7. mac 安装mysql怎么卸载不干净_CleanMyMac卸载不干净怎么办?如何彻底删除Mac上的CleanMyMac?...
  8. 记一次lvs-tunnel模式的故障分析(7)
  9. 7-2 天梯地图 (30分)_「月夜枫YYF」不会吧不会吧,枫哥失守8000分阵地!
  10. python自动化操作网页游戏_用Python脚本做一些网页游戏中力所能及的自动化任务...
  11. 谈谈工业App (1)
  12. win10下Miracast无线投屏使用教程及异常解决方案(超详细)
  13. vb.net 画多个矩形_电气原理图和接线图识图方法,电气接线图怎么画?你会画吗?...
  14. MT6762/MT6763处理器参数比较,MT6762参考设计资料介绍
  15. 基于AT91SAM7se512的串口通讯的实现
  16. Qt学习之使用QLabel实现超链接(点击QLabel直接跳转到网页链接)
  17. Datax下载、安装、定时同步配置
  18. iOS 调用TouchID 身份验证
  19. 为什么自动驾驶遇瓶颈,但自动代客泊车却很热?
  20. spring Boot Configuration Annotation Processor not fount in classpath

热门文章

  1. 一键批量替换文本工具
  2. 【问链-区块链基础知识系列】 第十课 首席架构师谈区块链技术演进
  3. CSS画出半圆,四分之一圆,三角等图形
  4. 分布电容对小信号的干扰解决方案
  5. v4l2架构专题模块handler分析 -- handler使能(1)cluster
  6. nacos开机启动报错找不到JAVA_HOME
  7. 在技术招聘中,HR 如何识别候选人的“味道”?
  8. MCU内部参考电压几种妙用你都知道嘛
  9. Java序列中如果有些字段不想被序列化,怎么办
  10. 解决VS2017/2019无法在线升级