[英]Check URL exists using c#
我一直试图找出提供URL是否可用。 可用并不意味着域可用性,我是指URL可以访问或不能访问
我已经测试过代码
var webrequest = (HttpWebRequest)WebRequest.Create(
"http://localhost:64519/TestPage.aspx");
webrequest.Method = "HEAD";
HttpWebResponse response = webrequest.GetResponse() as HttpWebResponse;
并且在Testpage的pageload上有一些代码
protected void Page_Load(object sender, EventArgs e)
{
StreamReader stream = new StreamReader(Request.InputStream);
XDocument xmlInput = XDocument.Load(stream);
}
现在的问题甚至是我在请求中添加了HEAD,但它仍进入PageLoad并引发异常。
场景:我一直在尝试将XML发送到提供的URL。 在XML情况下,它可以正常工作,但是当我尝试检查Link是否处于活动状态时,它会抛出异常,因为XDocument.Load(stream); 没有XML \\当然我可以通过使用解决问题
if (stream.BaseStream.Length != 0)
{
XDocument xmlInput = XDocument.Load(stream);
}
但它不合适。 我只是想知道链接是否存在,根据我的研究只是添加标题,但是即使添加标题,我的问题仍然存在
所以请有人可以帮我解决这个问题,不胜感激
您可以使用HttpWebRequest和HttpWebResponse类,并将请求的“方法”设置为“ HEAD”。
var request = (HttpWebRequest)WebRequest.Create("http://localhost:64519/TestPage.aspx");
request.Method = "HEAD";
var response = (HttpWebResponse)request.GetResponse();
var success = response.StatusCode == HttpStatusCode.OK;
我已经实现了即时功能。 希望它对您有用:)
public bool isValid(string url) {
Stream sStream;
HttpWebRequest urlReq;
HttpWebResponse urlRes;
try {
urlReq = (HttpWebRequest) WebRequest.Create(url);
urlRes = (HttpWebResponse) urlReq.GetResponse();
sStream = urlRes.GetResponseStream();
string read = new StreamReader(sStream).ReadToEnd();
return true;
} catch (Exception ex) {
//Url not valid
return false;
}
}
使用GET方法
如果网站响应您的查询,则获取响应数据...
如果没有这样的URL,那么它将引发WebException错误。
在这里,我列出了我的想法。 我认为它可以解决您的问题
try
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://localhost:64519/TestPage.aspx");
webRequest.Method = "GET";
string responseData = string.Empty;
HttpWebResponse httpResponse = (HttpWebResponse)webRequest.GetResponse();
using (StreamReader responseReader = new StreamReader(httpResponse.GetResponseStream()))
{
responseData = responseReader.ReadToEnd();
}
}
catch (System.Net.WebException ex)
{
//Code - If does not Exist
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.