Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-检查网络中的URI是否有效_C#_Api_Asp.net Core - Fatal编程技术网

C#-检查网络中的URI是否有效

C#-检查网络中的URI是否有效,c#,api,asp.net-core,C#,Api,Asp.net Core,我发现这段代码适用于类似于“”的uri,但不适用于类似于“”的uri。我真的不知道为什么。我有一个应用程序使用这个URI,它有一个我需要调用的API。我可以成功地执行一个api调用,我只是决定首先进行验证,如果基本uri存在并且有效 救命啊。谢谢 代码: 首先,您应该使用HttpClient而不是WebRequest,然后您要检查HTTP请求是否有效,但是您使用的是HTTPS URL 如果您想要一种同时检查HTTP和HTTPS URL的方法,您必须考虑如何管理HTTPS证书,因为存在以下例外情况

我发现这段代码适用于类似于“”的uri,但不适用于类似于“”的uri。我真的不知道为什么。我有一个应用程序使用这个URI,它有一个我需要调用的API。我可以成功地执行一个api调用,我只是决定首先进行验证,如果基本uri存在并且有效

救命啊。谢谢

代码:


首先,您应该使用
HttpClient
而不是
WebRequest
,然后您要检查HTTP请求是否有效,但是您使用的是HTTPS URL

如果您想要一种同时检查HTTP和HTTPS URL的方法,您必须考虑如何管理HTTPS证书,因为存在以下例外情况:


System.Net.WebException:无法建立SSL连接,请参阅内部异常。根据验证过程,远程证书无效。-->System.Net.Http.HttpRequestException:无法建立SSL连接,请参阅内部异常。-->System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效

也许您希望将该自定义证书添加为安全的,或者您希望删除检查SSL证书的安全策略(我不建议这样做),然后再添加其他证书


我希望这能对您有所帮助。

对响应code.System.Net.WebException进行调试:无法建立SSL连接,请参阅内部异常。根据验证过程,远程证书无效。-->System.Net.Http.HttpRequestException:无法建立SSL连接,请参阅内部异常。-->System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效。您没有任何代码来接受证书。。。那就完美了sense@JosephReyes编辑您的问题并将详细信息放在那里,而不是放在注释中。@BugFinder我应该添加什么代码?
bool isHttpValid = false;
try
{
    //Creating the HttpWebRequest
    HttpWebRequest request = WebRequest.Create("https://172.16.85.186/Account/Login/") as HttpWebRequest;
    //Setting the Request method HEAD, you can also use GET too.
    request.Method = "HEAD";
    //Getting the Web Response.
    HttpWebResponse response = request.GetResponse() as HttpWebResponse;
    //Returns TRUE if the Status code == 200
    response.Close();
    isHttpValid = true;
}
catch
{
    //Any exception will returns false.
    isHttpValid = false;
}