如何用asp+获取post的页面的数据

http://www.asp888.net 豆腐技术站

如何用asp+获取post的页面的数据
我们前面讲过如何跨站去抓取别的服务器页面上的数据[/title],但是那种方法只适合那些没有限制访问只能是
Post 的数据,比如我们下面的这个程序就是,我们举个最简单的例子:
test.htm

1<form action="test.asp" method="post">
2<input type="submit" value="提交"/>
3<input name="txtName" type="text" value="豆腐制作,都是精品"/>
4</form>

test.asp

1   
2str1=request.FORM("txtName")   
3response.write str1   

这样,当我们以Get 的方法访问http://localhost/test.asp?txtName=doufu 的时候,我们得到的是空值
所以有的时候,我们必须模拟Post 的方法,我们知道在asp中aspHttp组件是可以实现这个功能的,我们现
在已经到了asp+的时代,所以,豆腐 我决定采用asp+来尝试一下,幸运的是,我成功了
下面我就把我的程序帖出来给大家看看

1@ Assembly Name="System.Net" 
1@ Import Namespace="System.Net" 
1@ Import Namespace="System.IO" 
 1<script language="vb" runat="server">   
 2Sub getPage(url As String, payload as String) 
 3
 4Dim req As WebRequest   
 5Dim RequestStream As Stream   
 6req = WebRequestFactory.Create(url)   
 7req.Method = "POST"   
 8req.ContentType = "application/x-www-form-urlencoded"   
 9Dim SomeBytes() as Byte   
10if payload <> Nothing 
11
12SomeBytes = System.Text.Encoding.default.GetBytes(payload)   
13req.ContentLength = SomeBytes.Length 
14
15RequestStream = req.GetRequestStream()   
16RequestStream.Write(SomeBytes, 0, SomeBytes.Length)   
17RequestStream.Close()   
18Else   
19req.ContentLength = 0   
20End if 
21
22Dim result As WebResponse   
23Dim ReceiveStream As Stream   
24result = req.GetResponse()   
25ReceiveStream = result.GetResponseStream()   
26Dim read(512) As Byte   
27Dim bytes As Integer   
28bytes = ReceiveStream.Read(read, 0, 512)   
29Do while (bytes > 0)   
30Response.Write(System.Text.Encoding.default.GetString(read, 0, bytes))   
31bytes = ReceiveStream.Read(read, 0, 512)   
32Loop   
33End Sub 
34
35</script>
1   
2getPage("http://gpsserver/study/test1.asp","txtName=豆腐制作,都是精品")   

我们看到,程序的输出就是我们的这个txtName的值,这就证明 我们的 模拟Post 的程序成功了!

Published At
Categories with Web编程
Tagged with
comments powered by Disqus