假设pro.asp代码如下(测试用,以了解到底提交过来了几个表单项):
cnstr ="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=test;Data Source=dbserver"
set cn=server.createobject("adodb.connection")
cn.open cnstraa=request.Form("aa")
bb=request.form("bb")
sql="Insert Into table1 Values('" & aa &"','" & bb &"',3)"
cn.execute sql
cnstr ="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=test;Data Source=dbserver"
set cn=server.createobject("adodb.connection")
cn.open cnstraa=request.Form("aa")
bb=request.form("bb")
sql="Insert Into table1 Values('" & aa &"','" & bb &"',3)"
cn.execute sql
"http://www.xxx.com/quick/sendSms.asp" );
_WebRequest.Method = "POST";
_WebRequest.Timeout = 500;
System.Text.StringBuilder postData = new System.Text.StringBuilder( 1000 );
postData.Append( "Number=" );
postData.Append( "number" );
postData.Append( "\n" );
postData.Append( "Content=" );
postData.Append( "content" );
postData.Append( "\n" );
postData.Append( ".\n" );_WebRequest.ContentLength = postData.ToString().Length;
Stream _RequestStream = _WebRequest.GetRequestStream();
_RequestStream.Write( Encoding.UTF8.GetBytes( postData.ToString() ), 0, postData.ToString().Length );
_RequestStream.Close();WebResponse _WebResponse = _WebRequest.GetResponse();
StreamReader _ResponseStream = new StreamReader(
_WebResponse.GetResponseStream(), System.Text.Encoding.UTF8 );
_StrResponse = _ResponseStream.ReadToEnd();
_WebResponse.Close();
_ResponseStream.Close();
还是不行。要是生成请求内容那一段只保留一项就能够测试通过,接受表单数据的服务器端执行结果也正常。即:
postData.Append( "Number=" );
postData.Append( "number" );但如果再加一项,虽然不报错,但接收表单数据的服务器端执行就毫无反应了。此外,我在直接从IE中执行那个asp文件时(即没有任何表单数据发送过去),也可以产生相应的结果。