各位坛友好:功能就是想通过POST来让路由器断网,通过网页分析,断网需要提供链接地址,另外还要post一段数据,Request Payload,它的内容不是xml也不是json,从网页上提示看就是一串字符串:wan -linkdown,现在问题就是出在提交这串内容上,只要一提交带内容就会异常“基础连接已经关闭: 连接被意外关闭””
下面部分主要代码如下:路过的高手伙伴,注意看代码里的注释说明
首先说明下,将要POST的内容是字符串,不是JSON格式的数据,Request Payload内容是:“wan -linkdown”
HttpWebRequest request = null;
HttpWebResponse response = null;
request = WebRequest.Create(url) as HttpWebRequest;
string data = "";
byte[] b = null;
if (package.bjson)
{
data = JoinParams(package.Params);//将数据转换为json格式数据
b = package.Encoding.GetBytes(data);
}
else
{
b = package.Encoding.GetBytes(package.RequestPayload);
//执行这里package.RequestPayload=“wan -linkdown”
}
//下面的配置都是根据网页上抓的HTTP HEAD包填写的
request.ContentType = "text/html;charset=UTF-8";// application/x-www-form-urlencoded;text/plain;charset=UTF-8
request.Accept = package.Accept;
//request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MALCJS; rv:11.0) like Gecko";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0";
request.CookieContainer = Cookie;
request.Referer = package.RefererURL;
request.Method = method;
request.AllowWriteStreamBuffering = true;
request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
request.Headers.Add("Accept-Encoding", "gzip,deflate");
request.Headers.Add("Access-Control-Allow-Origin", "*");
request.Headers.Add("Cache-control", "no-cache");
//request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
request.KeepAlive = true;
request.ProtocolVersion = HttpVersion.Version10;//
request.ContentLength = b.Length;
//注意:当b这个值有实际内容时,如果上面不加request.ProtocolVersion = HttpVersion.Version10;这句,那下面的request.GetRequestStream();这句代码就提示“基础连接已经关闭: 连接被意外关闭”,变量b无值时不会
Stream Requeststream = request.GetRequestStream();
Requeststream.Write(b, 0, b.Length);
Requeststream.Close();
//注意:同样的当b变量有实际值时,加了request.ProtocolVersion = HttpVersion.Version10;这句,这面的代码运行正常,但是到下面request.GetResponse() 又出现了"基础连接已经关闭: 连接被意外关闭”,求教各位伙伴高手
response = request.GetResponse() as HttpWebResponse;
Stream Responsestream = response.GetResponseStream();
。。。。。。。
各个申请的对象都有abort() 及close()