System.Net.WebRequest.Create C# (CSharp) Method

Create() private static method

private static Create ( Uri requestUri, bool useUriBase ) : WebRequest
requestUri System.Uri
useUriBase bool
return WebRequest
        private static WebRequest Create(Uri requestUri, bool useUriBase)
        {
            if (NetEventSource.IsEnabled) NetEventSource.Enter(null, requestUri);

            string LookupUri;
            WebRequestPrefixElement Current = null;
            bool Found = false;

            if (!useUriBase)
            {
                LookupUri = requestUri.AbsoluteUri;
            }
            else
            {
                // schemes are registered as <schemeName>":", so add the separator
                // to the string returned from the Uri object
                LookupUri = requestUri.Scheme + ':';
            }

            int LookupLength = LookupUri.Length;

            // Copy the prefix list so that if it is updated it will
            // not affect us on this thread.

            List<WebRequestPrefixElement> prefixList = PrefixList;

            // Look for the longest matching prefix.

            // Walk down the list of prefixes. The prefixes are kept longest
            // first. When we find a prefix that is shorter or the same size
            // as this Uri, we'll do a compare to see if they match. If they
            // do we'll break out of the loop and call the creator.

            for (int i = 0; i < prefixList.Count; i++)
            {
                Current = prefixList[i];

                // See if this prefix is short enough.

                if (LookupLength >= Current.Prefix.Length)
                {
                    // It is. See if these match.
                    if (String.Compare(Current.Prefix,
                                       0,
                                       LookupUri,
                                       0,
                                       Current.Prefix.Length,
                                       StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        // These match. Remember that we found it and break
                        // out.
                        Found = true;
                        break;
                    }
                }
            }

            WebRequest webRequest = null;

            if (Found)
            {
                // We found a match, so just call the creator and return what it does.
                webRequest = Current.Creator.Create(requestUri);
                if (NetEventSource.IsEnabled) NetEventSource.Exit(null, webRequest);
                return webRequest;
            }

            // Otherwise no match, throw an exception.
            if (NetEventSource.IsEnabled) NetEventSource.Exit(null);
            throw new NotSupportedException(SR.net_unknown_prefix);
        }

Same methods

WebRequest::Create ( System requestUri ) : System.Net.WebRequest
WebRequest::Create ( string requestUriString ) : System.Net.WebRequest
WebRequest::Create ( string requestUriString ) : WebRequest

Usage Example

Exemplo n.º 1
0
        public Dictionary <string, string> fetchAnimeList()
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://horriblesubs.info/shows/");
            string         htmlPage;

            using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
                using (Stream stream = response.GetResponseStream())
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        htmlPage = reader.ReadToEnd();
                    }

            Dictionary <string, string> animeDictionary = new Dictionary <string, string>();

            if (!String.IsNullOrEmpty(htmlPage))
            {
                string pattern = "<div class=\"ind-show\"><a href=\"(?<url>.*?)\" title=\"(?<title>.*?)\">[\\s\\S].*?</a></div>";

                MatchCollection m = Regex.Matches(htmlPage, pattern);

                foreach (Match match in m)
                {
                    animeDictionary.Add(match.Groups["title"].Value, match.Groups["url"].Value);
                }
            }
            return(animeDictionary);
        }
All Usage Examples Of System.Net.WebRequest::Create