为了账号安全,请及时绑定邮箱和手机立即绑定

我想知道如果采用POST方式传参这段代码该怎么改?

我想知道如果采用POST方式传参这段代码该怎么改?

茅侃侃 2023-02-17 21:17:31
在 WinForm 用下面的方法可以打开页面并同时通过 GET 传参实现自动登录,string s = "http://www.xxx.com/send.aspx?user=aaa&pass=bbb";System.Diagnostics.Process.Start(s)
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

可以用HttpWebRequest和HttpWebResponse

或者WebRequest和WebResponse


//调用方法Dictionary<stringstring> postData = new Dictionary<stringstring>();postData.Add("user""aaa");postData.Add("pass""bbb"); GetPageByPost("http://www.xxx.com/send.aspx", postData, Encoding.UTF8); /// <summary>/// 以 Post 方式提交网页数据,获得服务器返回的数据/// </summary>/// <param name="url"> Url </param>/// <param name="postData">Post 数据</param>/// <param name="encoder">网页编码</param>/// <returns>服务器返回的数据</returns>public string GetPageByPost(string url, Dictionary<stringstring> postData, Encoding encoder){    string html = "";     HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);    webReq.Method = "POST";     Stream reqStream = null;    if (postData != null && postData.Count > 0) {        StringBuilder sb = new StringBuilder();        foreach (KeyValuePair<stringstring> kv in postData) {            sb.Append(HttpUtility.UrlEncode(kv.Key));            sb.Append("=");            sb.Append(HttpUtility.UrlEncode(kv.Value));            sb.Append("&");        }         byte[] data = Encoding.UTF8.GetBytes(sb.ToString().TrimEnd('&'));         webReq.ContentType = ContentType;        webReq.ContentLength = data.Length;        reqStream = webReq.GetRequestStream();        reqStream.Write(data, 0, data.Length);    }     HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse();    Stream stream = webResp.GetResponseStream();    StreamReader sr = new StreamReader(stream, encoder);    html = sr.ReadToEnd();     sr.Close();    stream.Close();     if (reqStream != null) {        reqStream.Close();    }     return html;}


查看完整回答
反对 回复 2023-02-20
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信