public void URLLoad() { string text; string[] items; string[] splits = new string[1]; splits[0] = OVERHEAD; try { foreach (var txtFile in urlDirectoryInfo.GetFiles()) { text = File.ReadAllText(URL_FILE_PATH + txtFile); items = text.Split(splits, StringSplitOptions.RemoveEmptyEntries); URLData url = new URLData { BookMark = Convert.ToBoolean(items[0]), Vpn = Convert.ToBoolean(items[1]), Title = items[2], Url = items[3], CategoryName = items[4], SelectThis = false, }; URLs.Add(url); } } catch (Exception ex) { Debug.WriteLine(ex + DateTime.Now.ToLongTimeString()); } }
public IActionResult GetUrlStats() { return(View("GetUrlStats", new DocsModel() { HostName = URLData.GetHostname(Request) })); }
public async Task <IActionResult> URLExample() { using (var httpClient = new HttpClient()) { //setup HttpClient httpClient.BaseAddress = new Uri(_apiUrl); httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _apiKey); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //setup data object var dataObject = new URLData() { url = "https://oxfordportal.blob.core.windows.net/emotion/recognition1.jpg" }; //setup httpContent object var dataJson = JsonConvert.SerializeObject(dataObject); HttpContent content = new StringContent(dataJson); content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json"); //make request var response = await httpClient.PostAsync(_apiUrl, content); //read response and write to view var responseContent = await response.Content.ReadAsStringAsync(); ViewData["Result"] = responseContent; } return(View()); }
//[ValidateAntiForgeryToken] public async Task <IActionResult> ShortenCollection([FromBody] IEnumerable <string> UrlList) { if (UrlList == null || UrlList.Count() == 0) { return(StatusCode(400)); } List <string> returnList = new List <string>(); foreach (var baseUrl in UrlList) { if (Uri.IsWellFormedUriString(baseUrl, UriKind.Absolute)) { var urlToAdd = new URL { BaseURL = baseUrl }; await _urlService.AddURL(_urlContext, urlToAdd, null); returnList.Add(URLData.GetHostname(Request) + urlToAdd.ShortenedIdentifier); } else { returnList.Add(""); } } return(Ok(returnList)); }
//[ValidateAntiForgeryToken] public async Task <IActionResult> UploadURL(URL url) { if (!ModelState.IsValid) { var enterURLModel = new EnterURLModel() { UrlData = url, HostName = null }; var UserUrls = _urlService.GetUserUrls(_urlContext, HttpContext); if (UserUrls.Count() >= 5) { UserUrls = UserUrls.Skip(UserUrls.Count() - 5); //Takes last 5 only } enterURLModel.UserUrls = UserUrls; return(View("EnterURL", enterURLModel)); } url.ExternalIP = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); await _urlService.AddURL(_urlContext, url, Request); var enterUrlModel = new EnterURLModel() { UrlData = url, UserUrls = _urlService.GetUserUrls(_urlContext, HttpContext), HostName = URLData.GetHostname(Request) }; enterUrlModel.HostName = URLData.GetHostname(Request); return(View("DisplayURL", enterUrlModel)); }
//[ValidateAntiForgeryToken] public async Task <IActionResult> ShortenURL(string BaseURL) { if (!Uri.IsWellFormedUriString(BaseURL, UriKind.Absolute)) { return(StatusCode(400)); //Bad Request - Input must be of type URL } var urlToAdd = new URL() { BaseURL = BaseURL }; try //Attempts to add URL to DB { await _urlService.AddURL(_urlContext, urlToAdd, null); } catch (Exception postShortURLError) { Console.WriteLine($"{postShortURLError} at {DateTime.Now}"); return(StatusCode(500)); //Internal Server Error } if (!string.IsNullOrEmpty(urlToAdd.ShortenedIdentifier)) //Final check to see if the action is about to return a null value { var returnObject = new { shortenedUrl = URLData.GetHostname(Request) + urlToAdd.ShortenedIdentifier }; //Creates object with all of the data needing to be returned string returnData = JsonConvert.SerializeObject(returnObject); //Serializes the object (Second layer to prevent returning a pure object) return(Ok(returnData)); } else { return(StatusCode(500)); //Internal Server Error } }
public void GetDirectoryAndFilesFromValidURLWithoutQueryString() { var dataAccessMock = new Mock <IDataAccessService>(); dataAccessMock.Setup(x => x.ReadFile(It.IsAny <string>())).Returns("expectedData"); HttpContext defaultContext = new DefaultHttpContext(); var contextAccessorMock = new Mock <IHttpContextAccessor>(); contextAccessorMock.Setup(x => x.HttpContext).Returns(defaultContext); var hostEnvMock = new Mock <IHostingEnvironment>(); hostEnvMock.Setup(x => x.ContentRootPath).Returns("some/dir"); StubDataController controller = new StubDataController(dataAccessMock.Object, contextAccessorMock.Object, hostEnvMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = defaultContext; string urlPath = "/some-controller/someaction/chk1000"; controller.HttpContext.Request.Path = urlPath; URLData urlData = ContextHelper.GetData(controller.HttpContext); Assert.Equal("/some-controller/someaction", urlData.Directory); Assert.Equal("/some-controller/someaction/chk1000.json", urlData.Path); Assert.Equal("chk1000.json", urlData.FileName); }
public IActionResult ShortenCollection() { return(View("ShortenCollection", new DocsModel() { HostName = URLData.GetHostname(Request) })); }
public static void UrlSave(URLData url) { using StreamWriter streamWriter = new StreamWriter(URL_FILE_PATH + url.Title + URL_FILE_NAME, false); streamWriter.Write(url.BookMark + OVERHEAD); streamWriter.Write(url.Vpn + OVERHEAD); streamWriter.Write(url.Title + OVERHEAD); streamWriter.Write(url.Url + OVERHEAD); streamWriter.Write(url.CategoryName); }
public void ShouldReturnCorrectPath() { string directory = "/some/dir/"; string fileName = "newFile.json"; URLData urlData = new URLData(directory, fileName); Assert.Equal("/some/dir/newFile.json", urlData.Path); }
public void FileNameShouldRemoveLeadingSlash() { string directory = "/some/dir"; string fileName = "/newFile.json"; URLData urlData = new URLData(directory, fileName); Assert.Equal("newFile.json", urlData.FileName); }
public void ShouldReturnPathWithAdditionalSlash() { string directory = "/some/dir"; string fileName = "newFile.json"; URLData urlData = new URLData(directory, fileName); Assert.Equal("/some/dir/newFile.json", urlData.Path); }
public IActionResult UrlList() { var enterURLModel = new EnterURLModel() { UrlData = null, UserUrls = _urlService.GetUserUrls(_urlContext, HttpContext), HostName = null }; enterURLModel.HostName = URLData.GetHostname(Request); return(View("DisplayURL", enterURLModel)); }
public ActionResult FindScoring(string firstURL, string secondURL) { URLData urlData = new URLData() { firstURL = firstURL, secondURL = secondURL }; var FirstUrl = HTMLParse(urlData.firstURL); var SecondUrl = HTMLParse(urlData.secondURL); List <string> FirstUrlWord = new List <string>(); List <int> FirstUrlWordFreq = new List <int>(); List <string> SecondUrlWord = new List <string>(); List <int> SecondUrlWordFreq = new List <int>(); int count_1 = 0; int count_2 = 0; foreach (var item in FirstUrl) { if (count_1 < 5) { FirstUrlWord.Add(item.Key); FirstUrlWordFreq.Add(item.Count()); } count_1++; } foreach (var item in SecondUrl) { if (count_2 < 5) { SecondUrlWord.Add(item.Key); SecondUrlWordFreq.Add(item.Count()); } count_2++; } double score = CalculateScoring(FirstUrlWord, SecondUrlWord); ViewData["FirstUrl_Keyword"] = FirstUrlWord; ViewData["FirstUrl_Keyword_Freq"] = FirstUrlWordFreq; ViewData["SecondUrl_Keyword"] = SecondUrlWord; ViewData["SecondUrl_Keyword_Freq"] = SecondUrlWordFreq; ViewData["Similarity Score"] = score; return(View(urlData)); }
private bool URLTitleCheck(object item) { URLData category = item as URLData; if (String.IsNullOrWhiteSpace(SelectTitle)) { return(true); } if (0 <= category.Title.IndexOf(SelectTitle)) { return(true); } return(false); }
//GET: .../Index or .../URL/Index (Due to default routing in startup) public IActionResult Index() { var enterUrlModel = new EnterURLModel() { UrlData = null, HostName = URLData.GetHostname(Request) }; var UserUrls = _urlService.GetUserUrls(_urlContext, HttpContext); if (UserUrls.Count() >= 5) { UserUrls = UserUrls.Skip(UserUrls.Count() - 5); //Takes last 5 only } enterUrlModel.UserUrls = UserUrls; return(View("EnterURL", enterUrlModel)); }
/// <summary> Adds a URL, indicating a file or other resource that contains /// the value of the attribute. /// /// </summary> /// <param name="url">A URL class pointing to the resource containing the value /// of the attribute. /// /// @throws IllegalArgumentException if url is null /// </param> public virtual void addURLValue(Uri url) { // Class to encapsulate the data bytes and the length if (url == null) { throw new ArgumentException("Attribute URL cannot be null"); } try { using (var httpClient = new HttpClient()) { // Get InputStream from the URL System.IO.Stream in_Renamed = httpClient.GetStreamAsync(url).Result; // Read the bytes into buffers and store the them in an arraylist System.Collections.ArrayList bufs = new System.Collections.ArrayList(); sbyte[] buf = new sbyte[4096]; int len, totalLength = 0; while ((len = SupportClass.ReadInput(in_Renamed, ref buf, 0, 4096)) != -1) { bufs.Add(new URLData(this, buf, len)); buf = new sbyte[4096]; totalLength += len; } /* * Now that the length is known, allocate an array to hold all * the bytes of data and copy the data to that array, store * it in this LdapAttribute */ sbyte[] data = new sbyte[totalLength]; int offset = 0; // for (int i = 0; i < bufs.Count; i++) { URLData b = (URLData)bufs[i]; len = b.getLength(); Array.Copy((Array)b.getData(), 0, (Array)data, offset, len); offset += len; } add(data); } } catch (System.IO.IOException ue) { throw new Exception(ue.ToString()); } }
private void UrlAdd() { URLData urlData = new URLData { Title = this.Title, Url = this.Url, Vpn = this.Vpn, CategoryName = Category, BookMark = false, SelectThis = false, }; URLs.Add(urlData); UrlSave(urlData); URLValueClear(); }
private bool CategoryFilter(object item) { URLData category = item as URLData; if (SelectCategory.Equals(CATEGORY_ALL)) { return(true); } if ((category.BookMark == true) && (SelectCategory.Equals(CATEGORY_STAR))) { return(true); } if (category.CategoryName.Equals(SelectCategory)) { return(true); } category.SelectThis = false; return(false); }
private void textBox1_TextChanged(object sender, EventArgs e) { lblPatientID.Text = lblTestDate.Text = lblTestTime.Text = lblTestType.Text = ""; try { data = UrlDataExtractor.GetData(txtSource.Text, CultureInfo.CreateSpecificCulture(ConfigurationManager.AppSettings["culture"])); if (data == null) { return; } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } lblPatientID.Text = data.PID; lblTestType.Text = data.TestType; lblTestDate.Text = data.ParesedDateTime.ToLongDateString(); lblTestTime.Text = data.ParesedDateTime.ToLongTimeString(); btnOpenMuse.Enabled = lblPatientID.Text != "" && lblTestDate.Text != "" & lblTestTime.Text != "" && lblTestType.Text != ""; }
//static async Task MainAsync(string url) //public void Get(string url) //{ // string Url = "https://api.projectoxford.ai/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=true&subscription-key=e82c658c702d477a8d635552a8ddf1c5"; // HttpWebRequest request = WebRequest.Create(Url) as HttpWebRequest; // request.Method = "POST"; // request.ContentType = " application/json"; // //request.Headers.Add("Authorization", token); // string data = "[{url:http://pngimg.com/upload/face_PNG5660.png}]"; // using (var streamWriter = new StreamWriter(request.GetRequestStream())) // { // streamWriter.Write(data); // streamWriter.Flush(); // streamWriter.Close(); // } // // Get response // HttpWebResponse myWebResponse = (HttpWebResponse)request.GetResponse(); // // Get the response stream // StreamReader reader = new StreamReader(myWebResponse.GetResponseStream()); // // Console application output // Console.WriteLine(reader.ReadToEnd()); // Console.ReadLine(); // } public async Task <List <Class1> > sendRequest(string imageUrl) { using (var httpClient = new HttpClient()) { //setup HttpClient httpClient.BaseAddress = new Uri(_apiUrl); httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _apiKey); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //setup data object var dataObject = new URLData() { url = imageUrl }; //setup httpContent object var dataJson = JsonConvert.SerializeObject(dataObject); HttpContent content = new StringContent(dataJson); content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json"); //make request var response = await httpClient.PostAsync(_apiUrl, content); //read response and write to view var responseContent = await response.Content.ReadAsStringAsync(); List <Class1> obj = JsonConvert.DeserializeObject <List <Class1> >(responseContent); return(obj); } //return null; }
public URLData GetHTTPURL_V1(Subfile_List item, string info_hash) { URLData res = new URLData(); WebClient web = new WebClient(); #region 旧版接口 /* #region QQ接口取File_hash * string postString = "torrent_para={\"uin\":\"985189148\",\"hash\":\"" + info_hash + "\",\"taskname\":\"M\",\"data\":[{\"index\":\"" + item.index + "\",\"filesize\":\"1\",\"filename\":\"M.mkv\"}]}"; * byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,尤其是汉字,事先要看下抓取网页的编码方式 * string url = "http://fenxiang.qq.com/upload/index.php/upload_c/checkExist";//地址 * web.Headers.Add("Referer", "http://fenxiang.qq.com/upload/index.php/upload_c/checkExist"); * web.Headers.Add("Accept", "*//*");//此行删除一个/ * web.Headers.Add("Accept-Language", "zh-cn"); * web.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); * web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"); * byte[] responseData = web.UploadData(url, "POST", postData);//得到返回字符流 * for (int i = 0; i < 10; ++i) * { * if (responseData.Length <= 0) * responseData = web.UploadData(url, "POST", postData);//得到返回字符流 * else * break; * } * string srcString = Encoding.UTF8.GetString(responseData);//解码 * if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\" : 2")) * return res; * QQFenXiang qqfx = JSONParser.FromJson<QQFenXiang>(srcString); * if (qqfx.data[0].file_hash.Equals("0000000000000000000000000000000000000000")) * return res; #endregion * * string File_hash = qqfx.data[0].file_hash; * * string File_hash = "e88137ca28580665330a2287b3c4f3288f946ffa"; * string postString; * byte[] postData; * string url; * byte[] responseData; * string srcString; */ #endregion #region 获取File_hash string postString = "m=jx?hash=" + info_hash + "&index=" + item.index; byte[] postData = Encoding.UTF8.GetBytes(postString); //编码,尤其是汉字,事先要看下抓取网页的编码方式 //string url = "http://1.jxbt.applinzi.com/jx.php?hash=" + info_hash + "&index=" + item.index;//地址 string url = "http://mt520.xyz:8080/CPServer/cloudplayer/getlistopen?hash=" + info_hash + "&index=" + item.index; //地址 web.Headers.Add("Accept", "*/*"); web.Headers.Add("Referer", url); web.Headers.Add("Accept-Language", "zh-cn"); web.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"); web.Headers.Add("Host", "1.jxbt.applinzi.com"); web.Headers.Add("Cache-Control", "no-cache"); string srcString = web.DownloadString(url); for (int i = 0; i < 5; ++i) { if (srcString.Length <= 0) { srcString = web.DownloadString(url); } else { break; } } if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\" : 2")) { return(res); } QQFenXiang qqfx = JSONParser.FromJson <QQFenXiang>(srcString); if (qqfx.data[0].file_hash.Equals("0000000000000000000000000000000000000000")) { return(res); } string File_hash = qqfx.data[0].file_hash; #endregion #region 第三步:连线QQ取播放地址 byte[] responseData; postString = string.Format("hash={0}&filename=movie", File_hash); postData = Encoding.UTF8.GetBytes(postString); //编码,尤其是汉字,事先要看下抓取网页的编码方式 url = "http://lixian.qq.com/handler/lixian/get_http_url.php"; //地址 web.Headers.Clear(); web.Headers.Add("Referer", "http://lixian.qq.com/handler/lixian/get_http_url.php"); web.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); web.Headers.Add("Accept-Language", "zh-cn"); web.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"); responseData = web.UploadData(url, "POST", postData);//得到返回字符流 //解码 byte[] buffer2 = Encoding.Convert(Encoding.UTF8, Encoding.Default, responseData, 0, responseData.Length); srcString = Encoding.Default.GetString(buffer2, 0, buffer2.Length).TrimStart('?'); if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\":-1")) { return(res); } XFPlay xf = JSONParser.FromJson <XFPlay>(srcString); #endregion string com_url = xf.data.com_url; #region 分析真实地址调用播放 string comkey = com_url.Substring(com_url.IndexOf("ftn_handler/"), com_url.IndexOf("/movie") - com_url.IndexOf("ftn_handler/")).Replace("ftn_handler/", ""); string urlstart = "cd"; try { urlstart = com_url.Substring(com_url.IndexOf("http://"), com_url.IndexOf(".qq.com") - com_url.IndexOf("http://")).Replace("http://", "").Replace("xflx", "").Replace("store", "").Replace("ctfs", "").Replace("btfs", "").Replace("ftn", "").Replace(".", "").Replace("src", "xa"); } catch { } string com_cookie = xf.data.com_cookie; com_url = GetPlayUrl(comkey, urlstart, com_cookie); if (string.IsNullOrEmpty(com_url)) { return(res); } string VideoName = HttpUtility.UrlDecode(item.name).Replace("【失效链接】", "").Replace("【无效链接】", "").Replace("【处理中,请等待】", ""); res.url = com_url; res.cookie = com_cookie; return(res); #endregion }
public URLData GetHTTPURL(Subfile_List item, string info_hash) { URLData res = new URLData(); WebClient web = new WebClient(); #region 获取File_hash string postString = "m=jx?hash=" + info_hash + "&index=" + item.index; byte[] postData = Encoding.UTF8.GetBytes(postString); //编码,尤其是汉字,事先要看下抓取网页的编码方式 //string url = "http://1.jxbt.applinzi.com/jxcode.php?hash=" + info_hash + "&index=" + item.index;//地址 string url = "http://mt520.xyz:8080/CPServer/cloudplayer/geturlopen?hash=" + info_hash + "&index=" + item.index; //地址 web.Headers.Add("Accept", "*/*"); web.Headers.Add("Referer", url); web.Headers.Add("Accept-Language", "zh-cn"); web.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"); web.Headers.Add("Host", "mt520.xyz:8080"); web.Headers.Add("Cache-Control", "no-cache"); string srcString = web.DownloadString(url); for (int i = 0; i < 2; ++i) { if (srcString.Length <= 0) { srcString = web.DownloadString(url); } else { break; } } Regex reg = new Regex("Success#(.+?)#(.+?)"); MatchCollection mc = reg.Matches(srcString); if (mc.Count == 0) { return(res); } res.url = mc[0].Groups[1].Value; res.cookie = mc[0].Groups[2].Value; return(res); if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\" : 2")) { return(res); } QQFenXiang qqfx = JSONParser.FromJson <QQFenXiang>(srcString); if (qqfx.data[0].file_hash.Equals("0000000000000000000000000000000000000000")) { return(res); } string File_hash = qqfx.data[0].file_hash; #endregion #region 第三步:连线QQ取播放地址 byte[] responseData; postString = string.Format("hash={0}&filename=movie", File_hash); postData = Encoding.UTF8.GetBytes(postString); //编码,尤其是汉字,事先要看下抓取网页的编码方式 url = "http://lixian.qq.com/handler/lixian/get_http_url.php"; //地址 web.Headers.Clear(); web.Headers.Add("Referer", "http://lixian.qq.com/handler/lixian/get_http_url.php"); web.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); web.Headers.Add("Accept-Language", "zh-cn"); web.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"); responseData = web.UploadData(url, "POST", postData);//得到返回字符流 //解码 byte[] buffer2 = Encoding.Convert(Encoding.UTF8, Encoding.Default, responseData, 0, responseData.Length); srcString = Encoding.Default.GetString(buffer2, 0, buffer2.Length).TrimStart('?'); if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\":-1")) { return(res); } XFPlay xf = JSONParser.FromJson <XFPlay>(srcString); #endregion string com_url = xf.data.com_url; #region 分析真实地址调用播放 string comkey = com_url.Substring(com_url.IndexOf("ftn_handler/"), com_url.IndexOf("/movie") - com_url.IndexOf("ftn_handler/")).Replace("ftn_handler/", ""); string urlstart = "cd"; try { urlstart = com_url.Substring(com_url.IndexOf("http://"), com_url.IndexOf(".qq.com") - com_url.IndexOf("http://")).Replace("http://", "").Replace("xflx", "").Replace("store", "").Replace("ctfs", "").Replace("btfs", "").Replace("ftn", "").Replace(".", "").Replace("src", "xa"); } catch { } string com_cookie = xf.data.com_cookie; com_url = GetPlayUrl(comkey, urlstart, com_cookie); if (string.IsNullOrEmpty(com_url)) { return(res); } string VideoName = HttpUtility.UrlDecode(item.name).Replace("【失效链接】", "").Replace("【无效链接】", "").Replace("【处理中,请等待】", ""); res.url = com_url; res.cookie = com_cookie; return(res); #endregion }
public static string TestCDN() { if (_isDev) { return("http://116.236.180.14"); } #if UNITY_EDITOR string content = FileUtils.ReadStringFromStreaming("url.dat", false); if (!string.IsNullOrEmpty(content)) { urls = content.Replace("\r\n", "\n").Split('\n'); foreach (var k in urls) { if (!urlDatas.ContainsKey(k)) { URLData data = new URLData(); data.pingOK = true; data.isUsed = false; data.downloadOK = true; data.url = k; urlDatas.Add(k, data); } } } #else if (!_isReadUrl) { _isReadUrl = true; string content = FileUtils.ReadStringFromStreaming("url.dat", false); if (!string.IsNullOrEmpty(content)) { urls = content.Replace("\r\n", "\n").Split('\n'); foreach (var k in urls) { if (!urlDatas.ContainsKey(k)) { URLData data = new URLData(); data.pingOK = true; data.isUsed = false; data.downloadOK = true; data.url = k; urlDatas.Add(k, data); } } } } #endif if (urls == null || urls.Length == 0) { return(null); } //Common.ShowLoading(); //#if UNITY_EDITOR // foreach (var k in urls) // { // isCDNOK(k); // } //#else // if (!_isTestedCDN) // { // _isTestedCDN = true; // foreach (var k in urls) // { // isCDNOK(k); // } // } //#endif bool isAnyPingOk = true; //foreach (var k in urlDatas) //{ // if (k.Value.pingOK) // { // isAnyPingOk = true; // break; // } //} if (!isAnyPingOk) { //Common.HideLoading(); UIMessageBoxHelper.Show("网络断开" + "(error : 701)", () => { SceneManager.LoadScene("Launcher"); } ); throw new System.Exception("网络断开(error : 701)"); } else { //Common.HideLoading(); URLData data = null; foreach (var k in urlDatas) { if (!k.Value.isUsed && k.Value.downloadOK) { data = k.Value; //Debug.LogError("CDN地址无效,切换新IP:" + data.url); break; } } if (data == null) { return(urls[0]); } return(data.url); } }