asp.net instream去读取客户端post数据

基于IIS7 web服务器,进行脚本调试。

客户端JS,使用xmlhttprequest与服务器进行数据交互。JS脚本中,xmlhttprequest采用sync模式,post数据给服务器,部分代码如下:

		function create_xhr()
		{
			if(window.XMLHttpRequest)
			{
				xmlhttp = new XMLHttpRequest();
			}
			else
			{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			
			if(null == xmlhttp) throw new Error("create xhr error");
		}
		function process()
		{
			try
			{
				create_xhr();
				xmlhttp.open("POST","process.aspx?cmd=up", false);
				xmlhttp.send("hello morning, nice to meet you.");
				document.write(xmlhttp.responseText);
			}
			catch(e)
			{
				document.write(e.message);
			}
		}

服务器端采用asp.net VBscript,部分代码如下:

Dim content
		content = "hello morning, nice to meet you."
		
		Dim InStream As System.io.Stream
		Dim Len, iRead As Integer

		InStream = Request.InputStream
		Len = CInt(InStream.Length)
		Dim ByteArray(Len) As Byte
		Trace.Write("Len", Len)
		iRead = InStream.Read(ByteArray, 0, Len)
		
		Dim c As String
		c = System.Text.Encoding.Default.GetString(ByteArray)
		c = Left(c, Len)

		If c = content Then
			response.write(c)
		Else
			response.write("fail") 
		End If	


aspx代码中,将字节数据转换为string类型,当调用System.Text.Encoding.Default.GetString(ByteArray)后,得到的字符串c,其长度实际上会多一个字节,这个多余的字节将出现的c的末尾,可能是由于编码转换时多余一个字符,因此需要将它去掉,以得到正确的结果,这里采用Left(c,Len).


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值