由于目标机器积极拒绝,无法连接 Stream sw = request.GetRequestStream报错怎么屏蔽掉呀?
大侠们好哈,现在小弟碰到了个如下问题
现在想做一个获取远程网址,然后传递指定参数给远程服务器,目前功能已经实现,但是有个问题就是,如果当前网络不通,或者服务器返回404,500等错误时,会提示
“/”应用程序中的服务器错误。
--------------------------------------------
由于目标机器积极拒绝,无法连接。 127.0.0.1:905
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Net.Sockets.SocketException: 由于目标机器积极拒绝,无法连接。 127.0.0.1:905
源错误:
行 78:
行 79: request.ContentLength = b.Length;
行 80: Stream sw = request.GetRequestStream();
行 81: sw.Write(b, 0, b.Length); //写入数据
行 82: sw.Close();
源文件: D:\net\YYOA\Project.WebUi\Update\Default.aspx.cs 行: 80
我的项目部分源码:
string strdata = "";
string url = "http://localhost:905/Update_Url.aspx";
//Response.Write(strdata);
//Response.End();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
string Data = Server.HtmlEncode("Data=" + strdata + "");
byte[] b = System.Text.Encoding.Default.GetBytes(Data);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = b.Length;
Stream sw = request.GetRequestStream(); //这里报错
sw.Write(b, 0, b.Length); //写入数据
sw.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream sw1 = response.GetResponseStream();
StreamReader sr = new StreamReader(sw1, System.Text.Encoding.GetEncoding("UTF-8"));
//获得服务器返回代码
string getshouquan = sr.ReadToEnd();
本人新手,对C#不太熟,希望大侠们指点下哈,目的就是判断下当前网络是否连接,是否能连接到服务器,然后如果连接不上就给个错误提示,如:response.write("当前无法连接到远程服务器,请检测网络是否可用!"), 等,望帮忙哈,谢谢了
------解决方案--------------------
try 一下,捕获System.Net.Sockets.SocketException,异常,处理弹窗就行了。