自己动手写谷歌API翻译接口

 
可以看到,利用GET请求方式,带入某些参数,就会返回一个json数组,QueryString参数如下:
 
 
同样的,我们只需要传入这三个参数,就可以获得我们想要的翻译内容,公开方法,代码如下。
 1 static string TranslateGoogleString(string translateContent, string fromLanguage = "zh-CN", string toLanguage = "en")
 2 {
 3   string transRetHtml = string.Empty;
 4  
 5   string encodedStr = HttpUtility.UrlEncode(translateContent); //URL编码
 6   string url = string.Format("http://translate.google.cn/translate_a/single?client=t&sl={0}&tl={1}&hl={0}&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&ssel=6&tsel=3&kc=0&tk=522626|172097&q={2}", fromLanguage, toLanguage, encodedStr);
 7  
 8 try
 9 {
10   var bytes = new WebClient().DownloadData(url);
11   transRetHtml = Encoding.UTF8.GetString(bytes);
12  
13   var index = transRetHtml.IndexOf("]],");
14   transRetHtml = transRetHtml.Substring(0, index + 1).Replace("[[", "");
15   transRetHtml = transRetHtml = transRetHtml.Replace("[\"", "");
16   transRetHtml = transRetHtml.Substring(0, transRetHtml.IndexOf("\""));
17  
18 }
19 catch (Exception ex)
20 {
21 }
22  
23 return transRetHtml;
24 }
我们来试一试:
1 static void Main(string[] args)
2 {
3     string str = TranslateGoogleString("梦想");
4     Console.WriteLine(str);
5     Console.ReadLine();
6 }

 

来源:http://www.cnblogs.com/yangda/p/4778604.html


智能推荐

《自己动手写云盘》 – 搭建Hadoop环境

个人主页:http://www.tongtongxue.com/archives/4578.html   软件准备 (1) hadoop-2.6.0.tar.gz (2) jdk-7u67-linux-x64.tar.gz (3) VMware Workstation Pro (4) CentOS-6.4-x86_64-minimal.iso 注意:此次是利用VM搭建Hadoop的伪分布...

自己动手写mvc框架SPARROW MVC

SPARROW-MVC SPARROW-MVC 是SPARROW框架其中的一员,模拟SPRING MVC功能实现。 目前实现功能列表 参数自动化注入 FLASH参数跨页面传递(包括中传页面和重定向页面) RESTFUL风格支持 参数解析功能 返回结果解析 URL-METHOD映射 URL REWRITE功能(自动原生支持) 拦截器支持 国际化支持 JSON返回支持(原生支持) 异常统一结构化规范支...

自己动手写事件总线(EventBus)

本文由云+社区发表 事件总线核心逻辑的实现。 EventBus的作用 Android中存在各种通信场景,如Activity之间的跳转,Activity与Fragment以及其他组件之间的交互,以及在某个耗时操作(如请求网络)之后的callback回调等,互相之之间往往需要持有对方的引用,每个场景的写法也有差异,导致耦合性较高且不便维护。以Activity和Fragment的通信为例,官方做法是实现...

自己动手写事件总线(EventBus)

事件总线核心逻辑的实现。 <!--more--> EventBus的作用 Android中存在各种通信场景,如Activity之间的跳转,Activity与Fragment以及其他组件之间的交互,以及在某个耗时操作(如请求网络)之后的callback回调等,互相之之间往往需要持有对方的引用,每个场景的写法也有差异,导致耦合性较高且不便维护。以Activity和Fragment的通信为例...

自己动手写Windows分区工具(一)

    分区体系有DOS、Apple、BSD等,Windows分区使用的是DOS分区体系,用的是MBR分区表,一般我们的硬盘用的都是这种方式。MBR分区表下,LBA(Logical Block Address,逻辑块地址)地址最大为32位,按每扇区512Byte计算最大能描述2TB的空间大小,若硬盘容量超过2TB左右便无法全部描述。除此之外,还有一种分区表叫作GPT(...

猜你喜欢

自己动手写SQL查询引擎-总篇

自己动手写SQL查询引擎-总篇 本篇Blog在总体层面介绍了SQL查询引擎Rider的功能及设计,其细节部分将会在后面的篇章中一一道来。 起因 笔者在实际工作中经常需要解析文件,每次文件稍有变化,都得拷贝粘贴一堆代码。 于是就想着能不能做一个通用的服务,通过配置的方式解析文件。 配置通用 最通用的方法就是自己定义一个文件描述语言,用语言去描述文件的组织结构。但如果自己定义一套新的语法,学习成本则太...

自己动手写推箱子游戏——菜单(源码)

第二:制作菜单,完善功能 源码下载地址:http://download.csdn.net/source/3503308 一:选关功能 自己要为游戏设置一些关数,而且难度应该递增,这个选关的对话框需要新建,主要是返回一个表示关数的数值 void CPushBoxDlg::OnChose() { CchoseDlg dlg; dlg.m_chose_hard=num_hard; dlg.DoModal...

自己动手写一个单链表

一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 链式存储结构的线性表将采用一组任意的存储单元存放线性表中的数据元素。由于不需要按顺序存储,链表在插入、删除数据元素时比顺序存储要快,但是在查找一个节点时则要比顺序存储要慢 使用链式存储可以克服顺序线性表需要预先知道数据大小的缺点,链表结构可以充分利用内存空间,实现灵活的内存动态管理。但...

自己动手写开源爬虫框架 Slit

自己写的一个开源爬虫框架,取名为Slit。现在的爬虫框架确实有很多,例如Nutch,Heritrix,webMagic等等我为什么又要自己写一个呢?这几个爬虫框架确实都不错,网上也有很多关于它们的评价,但是我发现它们中有很多功能我用不到,有些地方扩展性有点限制,然后自己一想搞个适合自己的轻框架,于是准备这个练手的项目Slit。   下面我对Slit项目做一些基本的介绍,包括项目的架构,内...

遇到BITMAP CONVERSION TO ROWIDS 后解决与思考

今天遇到一个案例,有点价值写下来,以后多看看 SQL: select t.order_id,   t.spec_name,   t.staff_code,  t.staff_code  as xxbStaffCode,     t.channel_id  as xxbChannelId,   &nb...

问答精选

JavaScript Text Validation Not Working with Regex

I'm trying to validate the Firstname and the Surname fields in an HTML document via JavaScript. The validation has to prompt whether the user inserted a valid Name/Surname meaning that no numbers or w...

npm modules not installing properly

I have a nodejs project which i created months ago and abandon it. At that time it was working fine. Now i have need that project but nodejs modules are not installing properly(as i expect). saying so...

Get widget name of label in frame using mouse

Win7 SP1, Python 2.7,Tkinter. I make a frame, and I place an array of labels within. The array is 10w x 24h. I want to click on one of these labels and return the name of the label so I may alter it's...

How to specify the Input shape for GRU model on keras functional api?

I have a 2d matrix where the features are columns and the samples are rows (178136 features and 416 samples). I transposed this matrix and then converted this matrix to 3d by creating a NumPy array of...

webbrowser add a margin-left when printing html file

I'm using a webbrowser control in c# to print an html file. When I open the html file with my current navigator (Firefox or chrome), my page is "great", and I have to print it exactlly how I...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答