Google 翻译API Demo

article/2025/9/15 15:51:27
接上篇 Google翻译API(B/S调用和C/S调用)

     上篇里提到的接口调用方法是get方式,这样有个问题,每次请求翻译的内容不能超过url允许的长度。需要改成post方式才行,但是google没有提供post方式的API请求,怎么办呢?在通过网上一番资料的查找,在一位哥们的博客里看到了解决方案,不过他用的是java版的,对应post地址和参数,写出了.net版的。加上朗读的功能,程序界面如下:

        /// <summary>/// Post方式获取翻译/// </summary>/// <param name="sourceText"></param>/// <param name="langPair"></param>/// <returns></returns>private static string TranslatePostMethod(string sourceText, string langPair){string fromLan = langPair; //原始语言string toLan = langPair.ToLower() == "zh" ? "en" : "zh"; //目标语言 这里只针对中英互转HttpWebRequest requestScore = (HttpWebRequest)WebRequest.Create("http://translate.google.com/translate_t#");StringBuilder postContent = new StringBuilder();Encoding myEncoding = Encoding.UTF8;postContent.Append(HttpUtility.UrlEncode("hl", myEncoding));postContent.Append("=");postContent.Append(HttpUtility.UrlEncode("en", myEncoding));postContent.Append("&");postContent.Append(HttpUtility.UrlEncode("ie", myEncoding));postContent.Append("=");postContent.Append(HttpUtility.UrlEncode("UTF-8", myEncoding));postContent.Append("&");postContent.Append(HttpUtility.UrlEncode("sl", myEncoding));postContent.Append("=");postContent.Append(HttpUtility.UrlEncode(fromLan, myEncoding));postContent.Append("&");postContent.Append(HttpUtility.UrlEncode("text", myEncoding));postContent.Append("=");postContent.Append(HttpUtility.UrlEncode(sourceText, myEncoding));postContent.Append("&");postContent.Append(HttpUtility.UrlEncode("tl", myEncoding));postContent.Append("=");postContent.Append(HttpUtility.UrlEncode(toLan, myEncoding));byte[] data = Encoding.ASCII.GetBytes(postContent.ToString());requestScore.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";requestScore.Method = "Post";//requestScore.ContentType = "application/x-www-form-urlencoded;charset=gb2312";requestScore.ContentLength = data.Length;requestScore.KeepAlive = true;requestScore.Timeout = (6 * 60 * 1000);requestScore.ProtocolVersion = HttpVersion.Version10;Stream stream = requestScore.GetRequestStream();stream.Write(data, 0, data.Length);stream.Close();string content = string.Empty;try{System.Net.ServicePointManager.Expect100Continue = false;HttpWebResponse responseSorce = (HttpWebResponse)requestScore.GetResponse();StreamReader reader = new StreamReader(responseSorce.GetResponseStream());content = reader.ReadToEnd();responseSorce.Close();reader.Dispose();stream.Dispose();}catch (WebException ex){HttpWebResponse responseSorce = (HttpWebResponse)ex.Response;//得到请求网站的详细错误提示StreamReader reader = new StreamReader(responseSorce.GetResponseStream());content = reader.ReadToEnd();responseSorce.Close();reader.Dispose();stream.Dispose();}finally{requestScore.Abort();}string reg = @"<(?<HtmlTag>[\w]+)[^>]*\s[iI][dD]=(?<Quote>[""']?)result_box(?(Quote)\k<Quote>)[""']?[^>]*>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*</\k<HtmlTag>>"; //返回的是一个html页面,需匹配出翻译内容Regex r = new Regex(reg);MatchCollection mcItem = r.Matches(content);string result = ConvertHtmlToText(mcItem[0].Value);return "post:" + result;}

可执行程序下载:http://download.csdn.net/source/3499399

源代码下载:http://download.csdn.net/source/3499392

参考资料:

1.Google翻译post提交无长度限制的在线翻译例子

2.使用正则表达式匹配嵌套Html标签

3.使用正则表达式将Html转换为纯文本



http://chatgpt.dhexx.cn/article/a8ji0FlK.shtml

相关文章

Google翻译接口应用

最近做一翻译公司网站&#xff0c;要求加一在线翻译。之前他们要的是一个外链接&#xff0c;我在想要是有现成的翻译网站接口可以调用的话&#xff0c;这个链接也就没必要了。在网上查了下&#xff0c;google的在线翻译可以用&#xff0c;找到了相关的代码&#xff0c;我自己添…

cisco模拟器无线路由器

运行Cisco packet tracer&#xff0c;将一个无线路由器&#xff08;一般为WRT300N&#xff09; 选择终端设备&#xff08;这四个就都用&#xff09; 将PC默认的有线网卡更换为无线网卡 笔记本电脑更换网卡方法同上 若有两台无线路由器&#xff0c;但以为信号较好&#xff0c;所…

思科模拟器:路由器单臂路由配置

实验内容&#xff1a;路由器单臂路由配置 实验工具&#xff1a;Cisco Packet Tracer 6.0 使用设备&#xff1a; PC 2台&#xff1b;Router_2811 1台&#xff1b;Switch_2960 1台 实验目的&#xff1a; 某企业有两个主要部门&#xff0c;技术部和销售部&#xff0c;分处于不同…

思科路由器添加serial接口

实现Serial接口的作用是使一个类的对象可以被序列化&#xff0c;即可以将对象转换为字节流进行传输或存储。这样&#xff0c;在网络传输或持久化存储时&#xff0c;就可以方便地将对象进行传输或存储&#xff0c;而不需要手动进行对象的转换。同时&#xff0c;实现Serial接口的…

思科模拟器CIsco Packet Tracer路由器上配置 DHCP

版权声明&#xff1a;如果对大家有帮助&#xff0c;大家可以自行转载的。https://blog.csdn.net/qq_37992321/article/details/84932054 1.技术目的 自动获取IP地址 2.拓扑图 3.配置PC PC0和PC1自动获取IP地址 4.配置路由器各个接口的IP地址 Router0 Router>en Router…

Cisco Packet Tracer 思科模拟器中路由器的DHCP配置

动态主机配置协议(Dynamic Host Configuration Protocol&#xff0c;DHCP)是TCP/IP协议簇中的一种&#xff0c;主要作用是给网络中其他计算机动态分配IP地址。 情境分析 网络管理员为每一台计算机手动分配一个IP地址&#xff0c;这样将会大大加重网络管理员的负担&#xff0c…

思科模拟器:路由器dhcp配置(详细解说)

首先我们需要的简单环境是这样的 首先我们要给vlan1这个网段配置dhcp&#xff08;更多的vlan也一样&#xff09; 配置路由器 进入全局 给vlan1这个网段配置网关&#xff08;在子接口上如下图&#xff09; 上图解说 interface f0/0.1 进入子接口&#xff08;进入 0/0.几 你自…

Cisco Packet Tracer思科模拟器中路由器PPP封装与验证

PPP协议提供在两个对等体之间传输数据帧&#xff0c;这种传输是有序的、全双工方式进行的。 思科模拟器中PPP封装中&#xff0c;常见的验证方式有PAP单、双向认证和CHAP单、双向认证 设备传输信息默认的协议是HDLC协议[弱加密]&#xff0c; 传输加密信息的话需要为其封装其他…

cisco模拟器-单臂路由-通过路由器不同vlan可以互相访问

cisco模拟器-单臂路由-通过路由器使得不同vlan可以互相访问 实验举例&#xff1a; 拓扑图如下 交换机上划分有3个vlan&#xff0c;每个主机所在vlan如拓扑图所示 首先将主机与交换机相连端口划分在相应vlan下 &#xff08;1&#xff09;将端口划分不同vlan可以通过命令 SW3&…

Cisco Packet Tracer思科模拟器中路由器的TELNET配置

如果配置好路由器的接口IP地址且能进行网络通讯时&#xff0c;则可以通过局域网或广域网&#xff0c;使用Telnet客户端登录到路由器上&#xff0c;对路由器进行本地或者远程的配置。这样可以降低管理员的工作量。 情境分析 Telnet 是 Cisco 交换机上支持 vty 的默认协议。如果…

Cisco模拟器配置OSPF

一、前言 1.1 本文为Cisco模拟器配置OSPF操作笔记 (供新手参考&#xff09; 使用Cisco模拟器&#xff0c;配置OSPF协议&#xff0c;并使各台电脑ping通&#xff0c;如下参考图&#xff01; 1.2 思科路由器设置ip设置 在将设备摆放完毕后&#xff0c;需要配置每台设备的IP&…

思科模拟器路由器常见问题及操作记录

CLI模式下出现Translating “XXXX”…domain server (255.255.255.255) 有三种解决办法&#xff1a; 1.进入全局配置模式输入no ip domain-lookup关闭掉自动域名解析 2.键盘上ctrlshift6&#xff0c;作用是中断自动域名解析&#xff08;一般还是直接中断比较方便&#xff09…

思科路由器模拟器

Cisco路由模拟器 转载于:https://blog.51cto.com/qxjjx/167869

思科模拟器入门基础-静态路由

静态路由&#xff1a;一种路由方式 静态路由是固定的不会变 是由管理员由手动添加的路由 不会频繁的改变路由表 保密性高 提高了网络的安全性 但只适用于中小型网络 因此 出于安全考虑的中小型网络 适合使用静态路由 实验环境 Cisco Packet Tracer 6.02台PT路由器2台2960交换机…

思科路由器/思科模拟器 配置静态路由 示例

方便理解&#xff0c;这里永强君采用了最简单的拓扑结构来演示静态路由的配置&#xff0c;PC的IP地址如拓扑图中所示&#xff0c;小伙伴们自行配置&#xff0c;这里就不演示了。 话不多说&#xff0c;命令行如下 第一步 设置路由器的端口IP R1 R1(config)#int fa0/0 R1(con…

思科模拟器 | 交换机与路由器的配置汇总【收藏备用】

文章目录 一、vlan配置【实现同一vlan的主机通信】1、基本配置和接线2、vlan配置与端口连接3、测试连接 二、truck配置【实现连接在不同交换机上的同一vlan的主机通信】1、基本配置和接线2、vlan配置与端口连接3、打truck做连接3、测试连接 三、静态路由配置1、自定义IP地址2、…

8.cisco思科模拟器无线路由器设备实训练习

题目链接&#xff1a; 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;kg6g 目录 配置 Linksys 路由器 一、拓扑截图 二、实验内容 第 1 部分&#xff1a; 连接到 Linksys 路由器 第 2 部分&#xff1a; 启用无线连接 第 3 部分&#xff1a; 配置并检验无线…

什么是网关模块 工业物联网以太网网关WiFi模块的选型

在智能科技发展的时代&#xff0c;物联网产品在市场上也是满目琳琅&#xff0c;呈现出万物互联的景象&#xff0c;也给人们生活带来了便利。物联网由多种协议发挥各自优势共同构成。但是要实现网络连接&#xff0c;我们不得不提到的网关。为了方便研发生产&#xff0c;厂家将网…

支持百万并发高性能网关设计实现系列:什么是网关?

网关是个什么东东&#xff1f;为什么需要网关&#xff1f; 随着微服务架构不断兴起&#xff0c;以前的一个大的单体应用根据不同的业务域拆分为不同的微服务系统进行维护和部署。因此各个微服务对外提供的服务接口API会呈现出爆发式的增长&#xff0c;如何对于各个应用服务的接…

网关地址和网关IP是什么

网关地址和网关IP是什么 一、什么是IP&#xff1f;&#xff1a; 1、IP地址是指互联网协议地址&#xff08;英语&#xff1a;Internet Protocol Address&#xff0c;又译为网际协议地址&#xff09;&#xff0c;是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式&a…