3月的下午,在C#群里日常装逼(聊天), 一兄弟说百度翻译有没有winfrom上用的Demo,问了一天  嫌烦了  我就干脆自己写个; PS 百度上的部分代码害死人啊  api地址都换的不成样了, 还那么多旧地址……………………(此文章我也在博。客。园。写了 雷同不要见怪)

给大家看下小程序的界面 (纯功能而已)

具体思路很简单了  就是调用百度给的url 传几个参数就行(这里用到C#的WebClient) 然后百度回传的是Json格式

实施步骤:

1  百度开发者中心 申请账号  自己去吧!

2 需要一个json.net来处理百度返回的json数据 做法是

在项目的“引用”上右击 选择“管理NuGet程序包”

然后在弹出窗口 中 选择 “联机”  在搜索窗口键入 “json”  搜索完成  安装即可

下面   上代码!

先放上 api的地址:http://api.fanyi.baidu.com/api/trans/product/apidoc

这里  我挑选几个重要参数说下

字段名

类型

必填参数

描述

备注

q

TEXT

Y

请求翻译query

UTF-8编码 需要url encode

from

TEXT

Y

翻译源语言

可设置为auto

to

TEXT

Y

译文语言

百度api上说不可设置成auto 但我测试是可以的 估摸着检测客户端语言了

appid

INT

Y

APPID

salt

INT

Y

随机数

我用的是Random

sign

TEXT

Y

签名

appid+q+salt+密钥字符串的MD5加密值

再看下 请求的URL :http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=auto&to=auto&appid=123&salt=111&sign=MD5123hsjsj

这个url只为说明格式 数据不正确的

那  上代码?好嘞! 注意  我把appid,key,salt 都写成了全局变量 所以在放代码上 不是很方便  截图吧

///

/// 翻译的按钮

///

private void button2_Click(object sender, EventArgs e)

{

string s = BaiduTans_Get("auto", "auto");

var obj = JObject.Parse(s); //使用了一个json.net 需要引用 注意前面的using

try

{

string res = obj["trans_result"].Last["dst"].ToString();

textBox2.Text = res;

}

catch (Exception ex)

{

MessageBox.Show("出现错误 可能是接口不稳定导致!");

}

}

///

/// 翻译方法主体

///

/// 从什么样的语言

/// 翻译成什么样的

///

private string BaiduTans_Get(string from, string to)

{

Random rd = new Random();

salt = rd.Next(100000, 999999);//s随机数 搞长一点

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}", textBox1.Text.Trim(), from, to, appid, salt, getSign());

WebClient wc = new WebClient(); //模拟请求

return wc.DownloadString(url);//直接down下来返回的字符串 然后处理

}

///

/// 获取签名(OAuth协议规则) ,appid + 翻译词 + salt + key

///

/// 返回签名的值

private string getSign()

{

string sign = "";

string t1 = textBox1.Text.Trim();

string oldsign = HttpUtility.UrlEncode(appid + t1 + salt + key, System.Text.Encoding.UTF8);

sign = GetMD5(oldsign);

return sign;

}

///

/// 加密成32位小写的MD5

///

/// 传入需要加密的字符串

/// 返回加密后的字符串

public static string GetMD5(string myString)

{

string res = "";

MD5 md5 = MD5.Create();//实例化一个md5对像

// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择

byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(myString));

// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得

for (int i = 0; i < s.Length; i++)

{

// 将得到的字符串使用32进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符

res = res + s[i].ToString("x");

}

return res;

}

这里  有几个注意的地方

我不知道是我写法问题还是百度的问题 会经常报sign签名错误, 多试几次即可……

另外 返回的json格式为

{

"from": "en",

"to": "zh",

"trans_result": [

{

"src": "sun",

"dst": "太阳"

}

]

}

在使用json.net 处理返回数据时 就没有那么详细说明了!

另外: 这个是winfrom里面实现了  稍微变通下即可在asp.net(web,mvc)中实现 道理都挺简单

我是老花 goodbye!

c#语言程序翻译软件,百度翻译新API C#代码(winfrom,webform....)小程序-Go语言中文社区...相关推荐

  1. 微信小程序录音 第一篇 (基于微信小程序及百度AI的 人员语音识别转文字显示小程序)

    基于微信小程序及百度AI的 人员语音识别转文字显示小程序 基于微信小程序及百度AI的 人员语音识别转文字显示小程序主要分3篇 1.微信小程序录音篇(小程序基于wx.startRecord()微信语音录 ...

  2. 微信小程序:2022虎年新UI春节送祝福微信小程序

    昨天好像也发了一款祝福语的小程序吧,然后今天就看到很多小伙伴上线运营了 这是一款网友用以前小编发过的一款端午送祝福改的一款小程序 里面的背景图包括祝福语都已经修改成与虎年相关的内容了 总体来说找的背景 ...

  3. 微信小程序和用网易新闻api实现自己的微信小程序

    每次因为看见别人写的新东西,自己就也想做一个,不知道是不是一个好习惯哎.微信小程序已经出来很久了,最近才开始学了一点皮毛,做了个小东西,用到了网易新闻接口,实现了小程序上的新闻浏览.但是很遗憾没有通过 ...

  4. 用java多线程实现“百度翻译接口API快速翻译”

    不知道为啥,突然开始想写博客,可能是想找个地方写点东西,煽情文艺的咱写不了,就写技术贴好了.不当之处,还希望同志们多多指教,不胜感激. API准备:自己先到百度去申请一个百度翻译API,话说百度翻译还 ...

  5. 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)

    之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...

  6. Python Flask微信小程序登录流程及登录api实现代码

    1.小程序端调用wx.login 2.判断用户是否授权 3.小程序端访问 wx.getUserInfo 4.小程序端js代码:+ wx.login({success: resp => {// 发 ...

  7. 【笔记】实战mpvue2.0多端小程序框架——原生小程序 API 调用与多端小程序发布

    文章目录 一.支付宝小程序源码运行 1.开发者工具下载 2.运行小程序 二.支付宝小程序用户授权 三.支付宝小程序获取OpenId 1.源码改造 2.服务器接口 (1)生成公钥和私钥 (2)填入公钥信 ...

  8. WordPress百度快速收录 API 提交代码

    百度快速收录功能上线,全面继承百度移动专区天级收录功能,并且百度熊掌号天级提交收录将于 5 月 18 日(即日)暂停使用,当然需要第一时间来帮助大家利用搜索引擎工具来做好网站优化! 将以下代码添加至主 ...

  9. WordPress CMS百度快速收录 API 提交代码以及配置教程

    百度快速收录的提交代码,百度快速收录的功能上线,是全面继承百度移动专区天级收录功能,并且天级提交功能于 5 月 18 日已经暂停使用了. 污水流量计 使用方法 将下面代码添加到你的 WordPress ...

最新文章

  1. gitter 卸载_最佳Gitter频道:VR和AR
  2. 索尼发布无人机相机专利,支持眼部对焦
  3. Matlab/Simulink ROS
  4. Hibernate之lazy延迟加载
  5. 数据中台(四)数栈,企业级一站式数据中台PaaS
  6. c语言结构体编程,[编程] C语言的结构体详解
  7. C++ exception类
  8. [C++STL]常用拷贝和替换算法
  9. 【操作系统】多线程与多任务的比较
  10. 计算机视觉物体检测中面对的挑战
  11. python的init方法在哪个模块_Python学习笔记(九)——Python _init_特殊方法和模块...
  12. setup the printer on ubuntu for uniofsurrey
  13. Python学习入门基础教程(learning Python)--4.2.3 Python的for实现递归,(0629学习笔记)我研究出来了!...
  14. 使用MHA对mysql主从架构中的主节点做高可用
  15. VMware下Ubuntu与宿主Windows共享文件夹
  16. 干货来袭!几行代码实现pdf添加水印和去除水印
  17. 搜索了才发现,原来这首歌的原唱是她们,SHE歌曲专辑下载,beyond歌曲专辑下载
  18. linux lamp php5.4一键安装包,LAMP一键安装包(linux+apache+mysql+php)
  19. mysql 增加临时表空间_数据库临时表空间设置
  20. 深入理解JVM—第二章:Java内存区域与内存溢出异常

热门文章

  1. 利用阿里云主机快速搭建基于wordpress的个人博客网站
  2. 计算机应用类专业综合知识试题
  3. python计算两个日期的相隔时间
  4. 坚忍型性格分析,坚忍型人格的职业发展
  5. 这波分享得你们都爱了吗?
  6. 去哪儿APP施行候补购票是如何进行12306候补购票
  7. ccpd文件名转成xml_在Deepin V20/Ubuntu 20.04下安装佳能LBP2900+打印机的方法
  8. openssh8.6默认不支持公钥ssh(gogs无法使用)
  9. 如何实现一个直播APP
  10. 台式计算机无法开机原因,台式电脑无法启动的原因和解决方法_电脑不能启动的原因与解决方法...