C# HttpWebRequest 请求连接关闭
C# HttpWebRequest Request Connection Close
为什么还要等待 Httprequest 的响应?如何关闭连接?获得 100 - 永远继续!
var request = (HttpWebRequest)WebRequest.Create("http://192.168.0.193/login.aspx");
var postData = "Login=A@Pass=B";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST"; //01
request.KeepAlive = false;
//request.Connection ="Close";
request.ProtocolVersion = HttpVersion.Version10; //02
request.Host = "192.168.0.193"; //03
request.UserAgent = "Mozilla/4.0"; //04
request.ContentType = "application/x-www-form-urlencoded"; //05
request.ContentLength = data.Length; //05
request.Headers.Add("Pragma", "no-cache"); //06
request.Accept = "*/*"; //07
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
stream.Close();
}
request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
}
请指教
你试过吗?
request.ServicePoint.Expect100Continue = false;
您正在等待,因为 "login.aspx" 没有发回 HttpResponse。由于没有 HttpResponse returned,请求将超时。如果您想获得 http 响应,则必须使用 SOAP 或 REST 协议编写 Web 服务。 Web 服务可以 return 一个 HttpResponse,然后您可以使用 WebRequest 捕获它,就像您在问题中发布的那样。
为什么还要等待 Httprequest 的响应?如何关闭连接?获得 100 - 永远继续!
var request = (HttpWebRequest)WebRequest.Create("http://192.168.0.193/login.aspx");
var postData = "Login=A@Pass=B";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST"; //01
request.KeepAlive = false;
//request.Connection ="Close";
request.ProtocolVersion = HttpVersion.Version10; //02
request.Host = "192.168.0.193"; //03
request.UserAgent = "Mozilla/4.0"; //04
request.ContentType = "application/x-www-form-urlencoded"; //05
request.ContentLength = data.Length; //05
request.Headers.Add("Pragma", "no-cache"); //06
request.Accept = "*/*"; //07
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
stream.Close();
}
request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
}
请指教
你试过吗?
request.ServicePoint.Expect100Continue = false;
您正在等待,因为 "login.aspx" 没有发回 HttpResponse。由于没有 HttpResponse returned,请求将超时。如果您想获得 http 响应,则必须使用 SOAP 或 REST 协议编写 Web 服务。 Web 服务可以 return 一个 HttpResponse,然后您可以使用 WebRequest 捕获它,就像您在问题中发布的那样。