//public string[] GetAHrefUrls(string data) //{ //} public HashSet <string> GetAHrefUrls(string page, Uri pageUri) { if (page == null) { return(null); } HashSet <string> urls = new HashSet <string>(); int founUrls = 0; MatchCollection curUrls = A_Href_Regex.Matches(page); foreach (Match m in curUrls) { string parsedUri = m.Groups["uri"].Value; Uri uri = UriHandler.CreateUri(parsedUri, pageUri.Scheme, pageUri.Host); if (uri != null) { if (uri.Host == pageUri.Host && !urls.Contains(uri.OriginalString)) { urls.Add(uri.OriginalString); founUrls++; } } } return(urls); }
public static void SaveCookies(Uri uri, CookieCollection cookies) { if (cookies == null) { return; } Uri host = UriHandler.CreateUri(string.Empty, uri.Scheme, uri.Host); if (uri != null) { _sharedCookies.Add(host, cookies); } }
private static string Parse(string address, string pattern) { Uri uri = UriHandler.CreateUri(address); DownloaderObj obj = new DownloaderObj(uri, null, true, null, CookieOptions.UseShared & CookieOptions.SaveShared, 5); Downloader.DownloadSync(obj); if (obj.DataStr != null) { return((new Regex(pattern)).Match(obj.DataStr).Groups[1].ToString()); } else { return(null); } }
private void SaveCookies(Uri uri, CookieCollection cookies) { if (CollectCookie) { if (cookies == null || uri == null) { return; } var host = UriHandler.CreateUri(string.Empty, uri.Scheme, uri.Host); if (host != null) { AllReceivedCookies.Add(host, cookies); } } }
public static void StartUp(string[] args) { if (args == null || args.Length == 0) { return; } if (args.Length > 1) { var urischeme = Constants.UriSchemePrefix + "://"; if (args[1].StartsWith(urischeme)) { UriHandler.Process(args[1]); } } }
/// <summary> /// /// </summary> /// <param name="uri"></param> /// <returns>表示是否在应用内处理</returns> public static bool HandleUriLaunch(Uri uri) { if (uri is null) { return(true); } if (Available) { return(UriHandler.Handle(uri)); } if (!UriHandler.CanHandleInApp(uri)) { UriHandler.Handle(uri); return(false); } launchUri = uri; return(true); }
public void ParseProxyFromUrlsOrSerp(List <string> uriList) { List <Uri> validUris = new List <Uri>(); foreach (var uri in uriList) { Uri validUri = UriHandler.CreateUri(uri); if (validUri != null) { validUris.Add(validUri); } } if (validUris.Count == 0) { validUris = null; } ParseProxyFromUrlsOrSerp(validUris); }
public void Can_Process_Uri() { // Arrange var sut = new UriHandler(); var instance = new Uri("http://www.google.com/"); var request = TestHelpers.CreateCustomTypeHandlerRequest(instance); var typeHandlers = Enumerable.Empty <ICustomTypeHandler>(); var typeNameFormatters = new[] { new DefaultTypeNameFormatter() }; var callback = TestHelpers.CreateCallback(typeHandlers, typeNameFormatters); // Act var actual = sut.Process(request, callback); var code = callback.Builder.ToString(); // Assert actual.Should().BeTrue(); code.Should().Be(@"new System.Uri(""http://www.google.com/"")"); }
bool CheckRedirect(HttpWebResponse response, ref Uri redirUri) { if (response.Headers == null) { return(false); } var location = response.Headers[HttpResponseHeader.Location]; if (location != null) { var host = response.ResponseUri.Host; var sheme = response.ResponseUri.Scheme; redirUri = UriHandler.CreateUri(location, sheme, host); return(true); } return(false); }
public PatternsContainer LoadPagePattern(string uristr, string path) { List <string> patterns = new List <string>(); try { lock (sync) { using (StreamReader sw = new StreamReader(path, Encoding.UTF8)) { while (!sw.EndOfStream) { string[] uriAndPatt = sw.ReadLine().Split(); if (uriAndPatt.Length < 2) { continue; } string line = sw.ReadLine(); if (uriAndPatt[0] == uristr) { for (int i = 1; i < uriAndPatt.Length; i++) { patterns.Add(uriAndPatt[i]); } } } } } Uri uri = UriHandler.CreateUri(uristr); if (uri == null) { return(null); } return(new PatternsContainer(uri, patterns)); } catch (Exception) { return(null); } }
bool CheckRedirect(DownloaderObj obj, ref Uri redirUri) { if (obj.Response.Headers == null) { return(false); } string location = obj.Response.Headers[HttpResponseHeader.Location]; if (location != null) { string host = obj.Response.ResponseUri.Host; string sheme = obj.Response.ResponseUri.Scheme; redirUri = UriHandler.CreateUri(location, sheme, host); return(true); } return(false); }
public static List <PatternsContainer> LoadPatterns(string path) { List <PatternsContainer> paterns = new List <PatternsContainer>(); try { lock (sync) { using (StreamReader sw = new StreamReader(path, Encoding.UTF8)) { while (!sw.EndOfStream) { string[] uriAndPatt = sw.ReadLine().Split('|'); if (uriAndPatt.Length < 2) { continue; } Uri uri = UriHandler.CreateUri(uriAndPatt[0]); if (uri == null) { continue; } List <string> pattList = new List <string>(); for (int i = 1; i < uriAndPatt.Length; i++) { pattList.Add(uriAndPatt[i]); } paterns.Add(new PatternsContainer(uri, pattList)); } } } return(paterns); } catch (Exception) { return(null); } }
public void AddUriHandler(UriHandler handler) { handlers.Add(handler); }
private static void Uri_Click(object sender, RoutedEventArgs e) { var uri = InAppNavigator.GetInAppUri((DependencyObject)sender); UriHandler.Handle(uri); }