如何在C#中检查给定的URL是HTTP还是HTTPS

Pra*_*h R 10 c# url https

我需要检查给定的URL(不一定以http或https为前缀)是HTTP还是HTTP.
这可能在C#中吗?
如果用户只给出www.dotnetperls.com没有任何前缀,我必须能够识别出它是HTTP.试过以下,

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("www.dotnetpearls.com");         
 string u = request.RequestUri.Scheme;
Run Code Online (Sandbox Code Playgroud)

但是这会产生无效的URL错误.它期望指定协议.

Fel*_*ani 9

尝试这样的事情:

public static bool IsHttps()
{
    return HttpContext.Current.Request.IsSecureConnection;
}
Run Code Online (Sandbox Code Playgroud)

或者,如果你有工作,你可以检查是否Request.RequestUri.SchemeUri.UriSchemeHttps.


Nai*_*air 5

var uri = new Uri("https://sss.com");
var requestType= uri.Scheme;
Run Code Online (Sandbox Code Playgroud)

在这里,requestType遗嘱将为您提供请求的类型http还是https

  • 我的网址不包含 http/https 前缀。所以不能使用它,因为它会显示“URI 格式错误”。 (2认同)