初次接触c#,问个关于WebRequest的问题

SB0610 2012-10-06 02:13:58

WebRequest request = WebRequest.Create("url");
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
Encoding encoding = Encoding.Default;
StreamReader reader = new StreamReader(stream, encoding);
String rf = reader.ReadLine();
reader.Close();

如果出现错误退出程序应该怎么写,比如无法访问、404、500等错误
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lei00529 2012-10-08
  • 打赏
  • 举报
回复
try
{
WebRequest request = WebRequest.Create("url");
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
Encoding encoding = Encoding.Default;
StreamReader reader = new StreamReader(stream, encoding);
String rf = reader.ReadLine();
reader.Close();
}
catch (WebException ex)
{
switch (ex.Status)
{
case WebExceptionStatus.Timeout:
Response.Write("超时");
break;
case WebExceptionStatus.ServerProtocolViolation:
Response.Write("此服务器响应不是有效的 HTTP 响应");
break;
default :
Response.Write(ex.Message);
break;
}

}
WebException.Status的枚举可以查看下面的链接
http://technet.microsoft.com/zh-cn/library/es54hw8e(it-it,VS.80).aspx
  • 打赏
  • 举报
回复
对于客户端,当出现200以外的状态时,.net会抛出异常。你可以写一个try...catch(Exception ex)...,然后具体调试跟踪ex的实际类型。
a948410291 2012-10-06
  • 打赏
  • 举报
回复
额 嗯嗯 分公司获得三个角度看
kensouterry1 2012-10-06
  • 打赏
  • 举报
回复
另外开一个线程,使用线程来监听读取时间,超时时间由你自己设定,如果时间超时但仍没有返回值就将线程强行退出即可……

109,886

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧