MSDN详述:http://msdn.microsoft.com/zh-SG/library/ms132330(v=vs.90)
获取POST提交的数据(例如:“A=123&B=456”)
Stream s = context.Request.InputStream;
int count = 0;
byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
while ((count = s.Read(buffer, 0, 1024)) > 0)
{
builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
}
s.Flush();
s.Close();
s.Dispose();
SortedList<string, string> SList = Param(builder.ToString());
赋值到SortedList
private SortedList<string, string> Param(string text)
{
string POSTStr = text;
SortedList<string, string> SortList = new SortedList<string, string>();
int index = POSTStr.IndexOf("&");
string[] Arr = { };
if (index != -1) //参数传递不只一项
{
Arr = POSTStr.Split('&');
for (int i = 0; i < Arr.Length; i++)
{
int equalindex = Arr[i].IndexOf('=');
string paramN = Arr[i].Substring(0, equalindex);
string paramV = Arr[i].Substring(equalindex + 1);
if (!SortList.ContainsKey(paramN)) //避免用户传递相同参数
{ SortList.Add(paramN, paramV); }
else //如果有相同的,一直删除取最后一个值为准
{ SortList.Remove(paramN); SortList.Add(paramN, paramV); }
}
}
else //参数少于或等于1项
{
int equalindex = POSTStr.IndexOf('=');
if (equalindex != -1)
{ //参数是1项
string paramN = POSTStr.Substring(0, equalindex);
string paramV = POSTStr.Substring(equalindex + 1);
SortList.Add(paramN, paramV);
}
else //没有传递参数过来
{ SortList = null; }
}
return SortList;
}
获取
SortedList<string, string> SList = Param(builder.ToString());
context.Response.Clear();
context.Response.Write(SList["ctl"].ToString());