文|Seraph

凡事都有原因
接触百度翻译API,主要是想用c++实现一个和TTS技术结合的翻译软件;
当然,还有一个原因就是200万字以内API调用免费。

申请与下载资料

  1. 首先需要申请接入百度翻译API接口。
  2. . 在接入文档中,可以看到相关步骤和使用方法,可以先仔细看一下,主要是了解api接口工作方式,以及其中涉及的一些知识点。
  3. 下载各语言DEMO中的相应代码,这里选择C版。

测试自己的appid及密钥的有效性

  1. 这里我们可以先试一下文档中提供的地址链接,在浏览器地址栏中输入
    http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4
    可以接收到测试例子结果:\u82f9\u679c。(即为"苹果“的Unicode码)
  2. 测试自己appid及密码
    将以上地址中appid的值替换为自己申请的,q可以替换为自己想翻译的语句,salt为一个随机数。
    然后,使用在线MD5加密工具加密新组成的**“appid+q+salt+密钥”字符串,并得到32位小写MD5码**,将该码替换sign。
    再在地址栏中输入该链接,如果得到类似测试例子的信息,则表示成功。
    dst字段表示翻译结果
    注意: 该身份认真过程类似与HTTP协议中DIGEST认证,更改加密字符串中的任何信息,都需要重新加密得到MD5字符串。(有兴趣的,可以去了解一下HTTP协议中的几种身份认证方式)

构建开发环境

  1. 打开C版的Demo后,发现需要<curl/curl.h>以及<openssl/md5.h>头文件
    这个两个文件分别来自libcurl和openssl开发库
    他们的编译过程可见
    (1)libcurl
    (2)openssl
  2. 编译好lib后,用VS2015搭建工程,建win32 Comsole Application即可
  3. 复制demo中代码并粘贴到源文件中,并修改如下:
#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/md5.h>
#pragma comment(lib,"libcurl.lib")
#pragma comment(lib,"libcurld_imp.lib")
#pragma comment(lib,"libcrypto.lib")
int main(void)
{CURL *curl;CURLcode res;curl = curl_easy_init();if (curl) {char myurl[1000] = "http://api.fanyi.baidu.com/api/trans/vip/translate?";char *appid = "20170520000048515";    //replace myAppid with your own appidchar *q = "pear";          //replace apple with your own text to be translate, ensure that the input text is encoded with UTF-8!char *from = "en";          //replace en with your own language type of input textchar *to = "zh";            //replace zh with your own language type of output textchar salt[60];int a = rand();sprintf_s(salt, "%d", a);char *secret_key = "sERmjSSdTNowRYvEABOr";   //replace mySecretKey with your own mySecretKeychar sign[120] = "";strcat_s(sign, appid);strcat_s(sign, q);strcat_s(sign, salt);strcat_s(sign, secret_key);printf("%s\n", sign);unsigned char md[16];int i;char tmp[3] = { '\0' }, buf[33] = { '\0' };MD5((unsigned char *)sign, strlen(sign), md);for (i = 0; i < 16; i++) {sprintf_s(tmp, "%2.2x", md[i]);strcat_s(buf, tmp);}printf("%s\n", buf);strcat_s(myurl, "appid=");strcat_s(myurl, appid);strcat_s(myurl, "&q=");strcat_s(myurl, q);strcat_s(myurl, "&from=");strcat_s(myurl, from);strcat_s(myurl, "&to=");strcat_s(myurl, to);strcat_s(myurl, "&salt=");strcat_s(myurl, salt);strcat_s(myurl, "&sign=");strcat_s(myurl, buf);printf("%s\n", myurl);//设置访问的地址curl_easy_setopt(curl, CURLOPT_URL, myurl);res = curl_easy_perform(curl);/* Check for errors */if (res != CURLE_OK)fprintf(stderr, "curl_easy_perform() failed: %s\n",curl_easy_strerror(res));long responseCode = 0;curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &responseCode);/* always cleanup */curl_easy_cleanup(curl);}return 0;
}

主要添加了lib,以及将不安全函数strcat、sprintf都换成strcat_s、sprintf_s。
同时将

MD5((unsigned char *)sign, strlen((unsigned char *)sign), md);

换成

MD5((unsigned char *)sign, strlen(sign), md);

4.为工程添加之前生成的libcurl及openssl的库文件
这里用到的相关版本号:openssl-1.1.0e、curl-7.26.0
lib主要用到libcurl.lib、libcurld_imp.lib、libcrypto.lib
同时,记得将相关dll放置exe文件目录下,如libcurld.dll、libcrypto-1_1.dll。

结果


接下来就可以将代码修改成自己想要的功能样子了,也可以按自己设计再添加一些界面和功能。

凡人皆有一死!------《权利的游戏》

百度翻译开放平台API相关推荐

  1. 【百度智能云】教程:连接百度ai开放平台api接口并完成语音识别的任务

    前言与介绍 本文章介绍了如何在Pycharm上用python语言简单的对连接百度ai开放平台的语音识别功能api端口的调用,并在代码里实现了现录音识别内容. 平台与相关工具 windows10.Pyc ...

  2. Java调用百度AI开放平台API

    百度AI开放平台 百度AI开放平台是全球领先的人工智能服务平台,面向开发者及企业开放120多项全球领先的AI能力和软硬一体组件,并提供 EasyDL定制化训练平台.对话系统开发平台UNIT.自定义模板 ...

  3. 震惊——JS中百度地图开放平台API尽然是这样使用

    百度地图js--API使用 基本使用 引用百度API资源 <!--引用资源--> <!--百度地图基础API--> <script type="text/jav ...

  4. 上手百度地图--开放平台必懂API使用场合(PC端)

    本篇整理仅适用与没有接触或对百度地图开放平台API基本没有概念的人 拖拽类 启用地图拖拽 默认启用 enableDragging() 对应的禁止方法 disableDragging( ) 启用地图习惯 ...

  5. php 百度逆地理编码,百度地图开放平台 Web服务API --Geocoding API (地理编码和逆地理编码)...

    百度地图开放平台地理编码服务和逆地理编码服务的api文档地址:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geoco ...

  6. python api调用百度ai平台_百度ai开放平台使用方法(附带详细案例步骤)

    百度ai开放平台 1.百度ai开放平台内有众多功能,如文字识别,语音技术等等内容,本文章以身份证识别为例子,教大家怎么使用它啦 链接走起:https://cloud.baidu.com/?from=c ...

  7. 百度AI开放平台在线体验及API接口调用(python)

    写在前面 百度AI开放平台将目前已有的深度学习和人工智能的项目成果做了一个集成,并供用户体验和开发者调用. 在线体验 图像技术 色情识别 人像分割 图像无损放大 图像风格转换 文字识别 车牌识别 文字 ...

  8. 如何正确调用百度AI开放平台的API进行图像识别

    一.注册一个百度账号 二.点击下方链接使用百度账号登录百度智能云 百度智能云登录地址:https://login.bce.baidu.com/ 三.进入百度智能云个人中心,找到图像识别 四.点击创建图 ...

  9. java 百度账号注册界面_基于百度AI开放平台的人脸识别的注册登录(1)

    百度ai开放平台首页 2.选择产品服务,人脸与人体识别,人脸识别选项.打开后如图所示 人脸识别 3.点击立即使用 3.jpg 4.点击创捷应用 创建应用 这一页大家按自己需求填写即可 5.创建完成后点 ...

最新文章

  1. 一个装作异步的代码段
  2. jittor和pytorch生成网络对比之sgan
  3. js检测、控制表单输入必须为中文
  4. Oracle中,如何查看FRA(Flashback Recovery Area)的利用率
  5. Deep Residual Learning for Image Recognition 笔记
  6. 出远门需要检查的物件
  7. 注解 @ModelAttribute 运用详细介绍
  8. 计算机考研8,计算机考研每日一练:第八天
  9. php把服务器文件curl提交,php中使用curl进行文件上传的巨坑
  10. 耐人深思的总结,牛牛牛
  11. 程序设计竞赛(ACM)与认证(CCF)的概念集(百度百科)
  12. 信息集成项目管理工程师 学习资料_如何备考系统集成项目管理工程师?
  13. 一起talk C栗子吧(第三十九回:C语言实例--创建一棵二叉树)
  14. 专用计算机房属于中危险等级,普通住宅属哪种危险等级的灭火器配置场所
  15. opencv之棋盘格检测
  16. Excel中鲜为人知的“照相机”功能(收藏)
  17. 为什么汉语不能用来编程?
  18. 香港证券监管机构呼吁加密监管以应对欺诈行为
  19. DOTA~杀人声音,英雄台词
  20. CentOS安装mysql*.rpm提示conflicts with file from package的解决办法

热门文章

  1. 不错VB代码,收藏!!!
  2. 宇称不守恒说了啥?杨振宁和李政道的发现有多大意义
  3. HTML JS小游戏 制作飞机大战
  4. 哪一款电容笔比较好用?平板电脑高性价比电容笔推荐
  5. C# winform 树层级列表 控件 ObjectListView的使用
  6. c++的lambda使用注意事项,可能导致的崩溃问题分析
  7. 在SQL存储过程中给条件变量加上单引号
  8. 什么是电力物联网?为什么要建造电力物联网云平台?——安科瑞 严新亚
  9. 【Unity3D】地形和天空盒子
  10. java 读gps_java – 如何获取当前的GPS位置?