如题,首先我写了一个web页面来实现post登陆,只做演示,代码如下
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string name = context.Request.Params["username"]; if (name == "1") { context.Response.Write("ok"); } else { context.Response.Write("no"); } }
只要name是1就ok否则no
简洁说下Get和post get通过在网络地址中附加参数来完成数据的提交,可以在url地址中看到,而post则是在页面内容中填写参数来完成提交 F12看一下就是username=1&userpwd=1这种格式的, POST 中文数据的时候,先中文字符转换为编码后的 ASCII 码,然后提交到服务器,提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。
然后控制台模拟一下 HttpWebRequest HttpWenResponse
HttpWebRequest类主要利用Http协议来和服务器交互,在Method中指定提交方式,GET或者POST
代码如下
static void Main(string[] args) { string name = "1"; string postdata = "username=" + name; byte[] data = Encoding.UTF8.GetBytes(postdata); HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create("http://localhost:8022/login.ashx"); webrequest.Method = "POST"; webrequest.ContentType = "application/x-www-form-urlencoded"; webrequest.ContentLength = data.Length; Stream stream = webrequest.GetRequestStream(); stream.Write(data, 0, data.Length); stream.Close(); HttpWebResponse webresponse = (HttpWebResponse)webrequest.GetResponse(); StreamReader sr = new StreamReader(webresponse.GetResponseStream(), Encoding.UTF8); string s = sr.ReadToEnd(); Console.WriteLine(s); }
结果自然ok 当把name改为2结果为no满足需求
当然这只是一个很简单的模拟,也就是试验一下