public static HttpHost From(string value, bool strict = true) { var schemeParts = value.Split(new[] { Uri.SchemeDelimiter }, StringSplitOptions.None); if (schemeParts.Length == 2 && (schemeParts[0] == Uri.UriSchemeHttp || schemeParts[0] == Uri.UriSchemeHttps)) { var secure = schemeParts[0] == Uri.UriSchemeHttps; var hostnameParts = schemeParts[1].Split(PortSeparator); if (hostnameParts.Length == 1) { return(From(secure, HttpDomain.From(hostnameParts[0]))); } else { var portText = hostnameParts[1]; if (portText.EndsWith("/")) { portText = portText.Substring(0, portText.Length - 1); } int port; if (Int32.TryParse(portText, out port)) { return(From(secure, hostnameParts[0], port)); } } } ExpectNot(strict, "Failed to parse host: " + value); return(null); }
public static HttpHost From(bool secure, string domain) { return(From(secure, HttpDomain.From(domain))); }