C#判断网站是否能访问或者断链
答案:2 悬赏:30
解决时间 2022-01-01 16:48
- 提问者网友:神仙爷爷
- 2021-12-31 21:01
C#判断网站是否能访问或者断链
最佳答案
- 二级知识专家网友:绝望伪装
- 2021-12-31 22:12
使用 .Net类库 下面的 HttpRequest 类。 发送 http请求(类似CURL) ,设置上超时,判断回传http报文是不是200 就好了。不是200就是出错了
附上我用的 判断SteamAPI服务是否可用的
public bool TestIsBotSteamWebOnline() {
string url = SteamWebBaseNSURI + "/profiles/" + _steamuser.SteamUID + "/edit";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.Timeout = 6500;
request.ReadWriteTimeout = 6500;
request.CookieContainer = this._steamuser.WebCookies;
request.Accept = "text/javascript, text/html, application/xml, text/xml, */*";
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0";
request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
request.AllowAutoRedirect = false;
request.Referer = url;
request.Headers.Add("Accept-Language", "zh-CN,en;q=0.8,zh;q=0.5,en-US;q=0.3");
HttpWebResponse response = null;// = (HttpWebResponse)request.GetResponse();
try
{
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
return true;
}
}
catch
{
}
finally
{
if (response != null)
response.Dispose();
}
return false;
}
附上我用的 判断SteamAPI服务是否可用的
public bool TestIsBotSteamWebOnline() {
string url = SteamWebBaseNSURI + "/profiles/" + _steamuser.SteamUID + "/edit";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.Timeout = 6500;
request.ReadWriteTimeout = 6500;
request.CookieContainer = this._steamuser.WebCookies;
request.Accept = "text/javascript, text/html, application/xml, text/xml, */*";
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0";
request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
request.AllowAutoRedirect = false;
request.Referer = url;
request.Headers.Add("Accept-Language", "zh-CN,en;q=0.8,zh;q=0.5,en-US;q=0.3");
HttpWebResponse response = null;// = (HttpWebResponse)request.GetResponse();
try
{
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
return true;
}
}
catch
{
}
finally
{
if (response != null)
response.Dispose();
}
return false;
}
全部回答
- 1楼网友:星痕之殇
- 2021-12-31 22:41
通过发送http请求可以判断。
httpwebrequest httpreq = null;
httpwebresponse httpres = null;
httpreq = (httpwebrequest)webrequest.create(url);//url是网站的地址
httpreq.timeout = 4000;
httpres = (httpwebresponse)httpreq.getresponse();
if (httpres.statuscode == httpstatuscode.ok)
{
//能访问
}
else
{
//不能访问
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯