如何以编程方式生成所有web服务器错误
本文关键字:web 服务器 错误 编程 方式生 | 更新日期: 2023-09-27 18:02:08
我想生成特定链接的所有错误,如果链接不工作,那么它应该显示特定的web服务器错误。
这是我的代码。请建议在哪里应该程序应该做,我可以得到所有的错误,如果链接不工作 public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnRender_Click(object sender, EventArgs e)
{
string strResult = string.Empty;
WebResponse objResponse;
WebRequest objRequest = System.Net.HttpWebRequest.Create(urltxt.Text);
objResponse = objRequest.GetResponse();
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
strResult = sr.ReadToEnd();
sr.Close();
}
strResult = strResult.Replace("<form id='form1' method='post' action=''>", "");
strResult = strResult.Replace("</form>", "");
//strResult = strResult.Replace("<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" /><html xmlns="http://www.w3.org/1999/xhtml">");
div.InnerHtml = strResult;
}
protected void btn_createlink_Click(object sender, EventArgs e)
{
var links = TextBox1.Text.Split(new string[] { "'n", "'r" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var link in links)
{
if (!IsLinkWorking(link))
{
//Here you can show the error. You don't specify how you want to show it.
TextBox2.Text += string.Format("{0}'nNot working'n'n ", link);
}
else
{
TextBox2.Text += string.Format("{0}'n working'n'n", link);
}
}
}
bool IsLinkWorking(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
//You can set some parameters in the "request" object...
request.AllowAutoRedirect = true;
ServicePointManager.ServerCertificateValidationCallback = (s, cert, chain, ssl) => true;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return true;
}
catch
{
//TODO: Check for the right exception here
return false;
}
}
关于"如何使用Visual Studio和MSDN查找方法和相关异常的帮助"的回答:
- 在Visual Studio中选择你需要的信息,然后按F1。将显示对给定方法的帮助。或者,你可以在你最喜欢的搜索引擎(如http://bing.com)上搜索类+方法名-即http://www.bing.com/search?q=HttpWebResponse.GetResponse。
- 给定方法的MSDN页面要么会从帮助中出现,要么通常会是搜索结果中的第一个结果之一-阅读它。
- 大多数方法包含列出异常的"例外"部分和通常包含详细信息的"备注"部分。在你的例子中,HttpWebResponse。GetResponse显示它抛出
WebException
异常,备注部分将详细介绍该异常。它特别提到了webeexception。响应属性,包含您正在寻找的内容(包括示例代码)。
显示Status
和Response.StatusCode
用法的文章的部分示例
try
{
var myHttpWebRequest = (HttpWebRequest) WebRequest.Create(pathThatReturns404);
var myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();
}
catch(WebException e)
{
if(e.Status == WebExceptionStatus.ProtocolError)
{
Console.WriteLine("Status Code : {0}",
((HttpWebResponse)e.Response).StatusCode);
}
}