asp.net Google的translate工具翻译 API
程序员文章站
2022-10-26 21:16:21
在这篇,我就利用c#写一个小程序,翻译: 思路是这样的: 1:发送post(或者get) 2:获取post(或者get)的响应 3:正则匹配我们想要的值。 发生post(或...
在这篇,我就利用c#写一个小程序,翻译:
思路是这样的:
1:发送post(或者get)
2:获取post(或者get)的响应
3:正则匹配我们想要的值。
发生post(或者get)的函数:
public static string getgetrequest(string urlp,string encode){
if(null==urlp) return null;
string strretp = null;
stream datastream = null;
try{
httpwebrequest myhttpwebrequest=(httpwebrequest)webrequest.create(urlp);
myhttpwebrequest.timeout = 10000; // 10 secs
httpwebresponse objresponse =(httpwebresponse)myhttpwebrequest.getresponse();
//encoding enc = encoding.getencoding(1252); // windows default code page
if(objresponse.statusdescription == "ok"){//httpstatuscode.ok
datastream = objresponse.getresponsestream ();
encoding obje = string.isnullorempty(encode)?encoding.getencoding(0):encoding.getencoding(encode);
streamreader r = new streamreader(datastream,obje);
strretp= r.readtoend();
}
}catch(exception e){
strretp =e.message;
}finally{
if(null!=datastream) datastream.close();
}
return strretp;
}
这个我在前面的一些文章中有所介绍。
然后正则匹配的函数:
public static string getmatchstring(string text,string pattern,int point){
if(string.isnullorempty(text)||string.isnullorempty(pattern))return string.empty;
regex rx = new regex(pattern,regexoptions.compiled | regexoptions.ignorecase | regexoptions.multiline);
match match = rx.match(text);
string word="";
if (match.success) word = match.groups[point].value;
return word.trim();
}
这个数根据一个正则表达数,返回匹配的值。
直接进入main主体:
public static void main(string[] args){
string mess ="我们";
console.writeline(httputility.urlencode("我们"));
mess = getgetrequest("http://translate.google.com/translate_t?langpair="+httputility.urlencode("zh-cn|en")+ "&text="+httputility.urlencode(mess,system.text.unicodeencoding.getencoding( "gb2312")),"utf-8");
//console.writeline(mess);
mess = getmatchstring(mess,@"(<div id=result_box dir=""ltr"">)([?:\s\s]*?)(</div>)",2);
console.writeline(mess);
}
注意的是
httputility.urlencode(mess,system.text.unicodeencoding.getencoding( "gb2312"))
这句,无法识别urlencode的字符编码,这里需要指明。
ok,然后csc了,编译一下,下载一下吧。
思路是这样的:
1:发送post(或者get)
2:获取post(或者get)的响应
3:正则匹配我们想要的值。
发生post(或者get)的函数:
复制代码 代码如下:
public static string getgetrequest(string urlp,string encode){
if(null==urlp) return null;
string strretp = null;
stream datastream = null;
try{
httpwebrequest myhttpwebrequest=(httpwebrequest)webrequest.create(urlp);
myhttpwebrequest.timeout = 10000; // 10 secs
httpwebresponse objresponse =(httpwebresponse)myhttpwebrequest.getresponse();
//encoding enc = encoding.getencoding(1252); // windows default code page
if(objresponse.statusdescription == "ok"){//httpstatuscode.ok
datastream = objresponse.getresponsestream ();
encoding obje = string.isnullorempty(encode)?encoding.getencoding(0):encoding.getencoding(encode);
streamreader r = new streamreader(datastream,obje);
strretp= r.readtoend();
}
}catch(exception e){
strretp =e.message;
}finally{
if(null!=datastream) datastream.close();
}
return strretp;
}
这个我在前面的一些文章中有所介绍。
然后正则匹配的函数:
复制代码 代码如下:
public static string getmatchstring(string text,string pattern,int point){
if(string.isnullorempty(text)||string.isnullorempty(pattern))return string.empty;
regex rx = new regex(pattern,regexoptions.compiled | regexoptions.ignorecase | regexoptions.multiline);
match match = rx.match(text);
string word="";
if (match.success) word = match.groups[point].value;
return word.trim();
}
这个数根据一个正则表达数,返回匹配的值。
直接进入main主体:
复制代码 代码如下:
public static void main(string[] args){
string mess ="我们";
console.writeline(httputility.urlencode("我们"));
mess = getgetrequest("http://translate.google.com/translate_t?langpair="+httputility.urlencode("zh-cn|en")+ "&text="+httputility.urlencode(mess,system.text.unicodeencoding.getencoding( "gb2312")),"utf-8");
//console.writeline(mess);
mess = getmatchstring(mess,@"(<div id=result_box dir=""ltr"">)([?:\s\s]*?)(</div>)",2);
console.writeline(mess);
}
注意的是
httputility.urlencode(mess,system.text.unicodeencoding.getencoding( "gb2312"))
这句,无法识别urlencode的字符编码,这里需要指明。
ok,然后csc了,编译一下,下载一下吧。
上一篇: 我国七年医改区域平衡、药物创新仍难解
下一篇: 人民时评:莫把中药当成一把草
推荐阅读
-
ASP.NET5 REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
-
ASP Google的translate API代码
-
asp.net Google的translate工具翻译 API
-
使用HTTP-REPL工具测试ASP.NET Core 2.2中的WEB API项目
-
利用谷歌 Translate API制作自己的翻译脚本
-
Google Translate API 收费了,仅有的积分求php的其它在线翻译写法解决思路
-
PHP Google的translate API代码
-
利用谷歌 Translate API制作自己的翻译脚本_php实例
-
PHP Google的translate API代码_PHP
-
ASP.NET5 REST API使用示例——基于云平台+云服务打造自己的在线翻译工具