110,545
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 使用WebRequest获取Google翻译后的内容
/// </summary>
/// <param name="strTranslateString">需要翻译的内容</param>
/// <param name="strRequestLanguage">原文语种</param>
/// <param name="strResultLanguage">译文语种</param>
/// <returns></returns>
private string GetGoogleTranslateJSONString(string strTranslateString,string strRequestLanguage, string strResultLanguage)
{
string url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=";
WebRequest request = HttpWebRequest.Create(url + strTranslateString + "&langpair=" + strRequestLanguage + "%7C" + strResultLanguage);
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();//这句出错
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
return responseFromServer;
}
// <summary>
/// 翻译
/// </summary>
/// <param name="texts">需要翻译的内容</param>
/// <param name="languages">翻译语种</param>
/// <returns></returns>
private string china_to_english(string texts, string languages)
{
string payload = "hl=zh-CN&ie=UTF8&text=" +texts+ "&langpair=" +languages;
string s = "http://translate.google.com/translate_t" + payload;
string str_return = string.Empty;
WebRequest req = WebRequest.Create("http://translate.google.com/translate_t");
req.Credentials = CredentialCache.DefaultCredentials;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.Timeout = 10000;
req.ContentLength = payload.Length;
Encoding encoding = Encoding.GetEncoding("UTF-8");
Byte[] bytes = encoding.GetBytes(payload);
req.ContentLength = bytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
if (res.StatusDescription == "ok")
{
Console.WriteLine("暂时无法连接到网站");
Console.ReadKey();
}
Stream dataStream = res.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
str_return = responseFromServer;
reader.Close();
dataStream.Close();
res.Close();
//str_return.Replace("?i:(.+)(\<div)(.+)(\>)(.+)(\<\/div\>)(.+))","$5");
str_return = GetStrFiltrateYH(str_return);
str_return.Substring(3);
return str_return;
}
string payload ="v=1.0&q=" + strTranslateString + "&langpair=" + strRequestLanguage + "%7C" + strResultLanguage;
string str_return = string.Empty;
WebRequest req = WebRequest.Create("http://ajax.googleapis.com/ajax/services/language/translate?");
req.Credentials = CredentialCache.DefaultCredentials;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.Timeout = 10000;
req.ContentLength = payload.Length;
Encoding encoding = Encoding.GetEncoding("UTF-8");
Byte[] bytes = encoding.GetBytes(payload);
req.ContentLength = bytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
if (res.StatusDescription == "ok")
{
Console.WriteLine("暂时无法连接到网站");
Console.ReadKey();
}
Stream dataStream = res.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
str_return = responseFromServer;
reader.Close();
dataStream.Close();
res.Close();
return str_return;