C# post 如何传多个值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# post 如何传多个值相关的知识,希望对你有一定的参考价值。

想写个自动登录网页的小程序 程序是用C#写 网页时ASP写的用POST提交数据 两天过去了 却没有一点进展 原因是我传两个以上的值给网页(username,pwd,type),但网页却只能接受一个值 网页时第三方做的不能修改,望大虾指点一二。以下是我的代码:
CookieContainer cc = new CookieContainer();
public String OpenURL(String strUrl, String strParm)

strParm="name=" + textBox1.Text.ToString() + " & password=" + textBox2.Text.ToString()+"";
Encoding encode = System.Text.Encoding.Default;

byte[] arrB = encode.GetBytes(strParm);

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(strUrl);
myReq.Method = "POST" ;
myReq.ContentType = "application/x-www-form-urlencoded";
myReq.ContentLength = arrB.Length;

Stream outStream = myReq.GetRequestStream();
myReq.CookieContainer = cc;
outStream.Write(arrB,0,arrB.Length);
outStream.Close();

HttpWebResponse response = (HttpWebResponse)myReq.GetResponse();
cc.Add(response.Cookies);
Stream stream = response.GetResponseStream();
string shtml = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
this.textBox3.Text = sHtml.ToString();
response.Close();
return sHtml;
代码是COPY的 有些看不懂 如果大虾您有空 麻烦也给写点注释吧!

参考技术A 把要传的值放在一个string 类型的变量中,选择一种符号隔开
例如string str= username+"|"+ pwd+"|"+ type
传值例如:xxx.aspx?str
传到目标页面接受strReq=Request.QueryString["str"].ToString();
对象获取到放在一个string [] str1=strReq.spilt(‘|’); username=str[0].tostring();
pwd=str[1].tostring();
type=str[2].tostring();
参考技术B string username = System.Web.HttpUtility.UrlEncode(textBox1.Text);

string strParm = String.Format("username=0&pwd=1&type=2", username, pwd, type);

username, pwd, type的值是需要进行UrlEncode的

再就是,字符编码要和接收的页面一致.

byte[] arrB = Encoding.GetEncoding("GB2312").GetBytes(strParm);

c# webapi post多个参数

参考技术A 可以的,一般post可带多个参数,还不限制长度,一般用来传重要的数据

以上是关于C# post 如何传多个值的主要内容,如果未能解决你的问题,请参考以下文章

php 通过POST传多个值 如何处理

c# webapi post多个参数

asp.net(vs2008 c# 中) 如何在跳转的页面传递参数?

c#如何post文件流

如何将 javascript 对象传递给 C# MVC 4 控制器

如何使用 C# 和 SQL 将表值参数传递给用户定义的数据表