private TranslateRequestResult PasreJsonResult(TTranslateDictionary dict, string enc) { TranslateRequestResult res = new TranslateRequestResult(); res.Encoding = enc; if (dict.Sentences.Length > 0) { res.Original = dict.Sentences[0].Original; //res.Phonetic = dict.Sentences[0].Translit; res.UrlSound = string.Format(_soundUrl, res.Original); } if (dict.Dict != null && dict.Dict.Length > 0) { foreach (TDictionaryItem item in dict.Dict) { res.Translate.Add(item.Position, item.Terms); } } return(res); }
public override async Task <TranslateRequestResult> Request() { string url = String.Format(_baseAddress, _soundUrl, Target, Query); TranslateRequestResult result = null; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); if (request != null) { var response = await request.GetResponseAsync(); var webResponse = (HttpWebResponse)response; if (webResponse == null) { return(null); } Stream resp = webResponse.GetResponseStream(); if (resp != null) { Encoding fromenc = Encoding.GetEncoding(webResponse.CharacterSet); Encoding toenc = Encoding.Default; StreamReader reader = new StreamReader(resp, fromenc); string resultRequest = reader.ReadToEnd(); TTranslateDictionary dict = JsonConvert.DeserializeObject <TTranslateDictionary>(resultRequest); result = (TranslateRequestResult)PasreJsonResult(dict, "utf-8"); reader.Close(); resp.Close(); } } return(result); } catch (Exception ex) { } return(null); }