using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Threading;
namespace Transn
{
class TsMachine
{
public string Google(string texts, string languages)
{
try
{
return Google_T(texts, languages);
}
catch
{
Thread.Sleep(1000);
try
{
return Google_T(texts, languages);
}
catch
{
return "";
}
}
}
private string Google_T(string texts, string languages)
{
string payload = "&text=" + texts + "&langpair=" +languages;
WebRequest req = HttpWebRequest.Create(@"http://translate.google.com/translate_t?hl=zh-CN&ie=utf8");
//HttpWebRequest req = reqs as HttpWebRequest;
// req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Maxthon)";
// req.SendChunked = true;
// req.TransferEncoding = "UTF-8";
req.Credentials = CredentialCache.DefaultNetworkCredentials;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.Timeout = 50000;
req.ContentLength = payload.Length;
Encoding encoding = Encoding.GetEncoding("UTF-8");
Byte[] bytes = encoding.GetBytes(payload);
req.ContentLength = bytes.Length;
Stream newStream = null;
newStream = req.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
if (res.StatusDescription.ToLower() != "ok")
{
Console.WriteLine("无法连接!");
}
Stream dataStream = res.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding(res.CharacterSet));
string responseFromServer = null;
responseFromServer = reader.ReadToEnd();
//Encoding en = Encoding.GetEncoding("gb2312");
//byte[] unicodeBytes = en.GetBytes(responseFromServer);
//byte[] asciiBytes = Encoding.Convert(en, Encoding.UTF8, unicodeBytes);
//str_return = Encoding.UTF8.GetString(asciiBytes);
reader.Close();
dataStream.Close();
res.Close();
string content = responseFromServer;
string s = "
";
int start = content.IndexOf(s);
int end = content.IndexOf("
",start);
content = content.Substring(start + s.Length, end - start - s.Length);
return content.Replace(" ", " ").Replace(""", "\"").Replace(">", ">").Replace("<", "<").Replace("
", "\r\n").Replace(" ", " ").Replace("'","'");
}
public string Yahoo(string texts, string languages)
{
try
{
return Yahoo_T(texts, languages);
}
catch
{
Thread.Sleep(1000);
try
{
return Yahoo_T(texts, languages);
}
catch
{
return "";
}
}
}
public string Yahoo_T(string texts, string languages)
{
string payload = "more=1&ei=UTF-8&trtext=" + texts + "&lp=" + languages + "";
WebRequest req = HttpWebRequest.Create(@"http://fanyi.yahoo.com.cn/translate_txt?");
// HttpWebRequest req = reqs as HttpWebRequest;
// req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Maxthon)";
req.Credentials = CredentialCache.DefaultNetworkCredentials;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.Timeout = 50000;
req.ContentLength = payload.Length;
Encoding encoding = Encoding.GetEncoding("UTF-8");
Byte[] bytes = encoding.GetBytes(payload);
req.ContentLength = bytes.Length;
Stream newStream = null;
newStream = req.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
if (res.StatusDescription.ToLower() != "ok")
{
Console.WriteLine("无法连接!");
}
Stream dataStream = res.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding(res.CharacterSet));
string responseFromServer = null;
responseFromServer = reader.ReadToEnd();
//Encoding en = Encoding.GetEncoding("gb2312");
//byte[] unicodeBytes = en.GetBytes(responseFromServer);
//byte[] asciiBytes = Encoding.Convert(en, Encoding.UTF8, unicodeBytes);
//str_return = Encoding.UTF8.GetString(asciiBytes);
reader.Close();
dataStream.Close();
res.Close();
string content = responseFromServer;
string s = "
";
int start = content.IndexOf(s);
int end = content.IndexOf("
\n\t\t\t