http://www.asp888.net 豆腐技术站 如何用asp+获取post的页面的数据
我们前面讲过如何跨站去抓取别的服务器页面上的数据[/title],但是那种方式只适合那些没有限制访问只能是
Post 的数据,比如我们下面的这个程序就是,我们举个最简朴的例子:
test.htm
<form action=\"test.asp\" method=\"post\">
<input type=submit value=\"提交\">
<input type=text name=\"txtName\" value=\"豆腐制作,都是精品\">
</form>
test.asp
<%
str1=request.FORM(\"txtName\")
response.write str1
%>
这样,当我们以Get 的方式访问http://localhost/test.asp?txtName=doufu 的时候,我们得到的是空值
所以有的时候,我们必须模仿Post 的方式,我们知道在asp中aspHttp组件是可以实现这个功能的,我们现
在已经到了asp+的时代,所以,豆腐 我决定采用asp+来尝试一下,幸运的是,我成功了
下面我就把我的程序帖出来给大家看看
<%@ Assembly Name=\"System.Net\" %>
<%@ Import Namespace=\"System.Net\" %>
<%@ Import Namespace=\"System.IO\" %>
<script language=vb runat=server>
Sub getPage(url As String, payload as String)
Dim req As WebRequest
Dim RequestStream As Stream
req = WebRequestFactory.Create(url)
req.Method = \"POST\"
req.ContentType = \"application/x-www-form-urlencoded\"
Dim SomeBytes() as Byte
if payload <> Nothing
SomeBytes = System.Text.Encoding.default.GetBytes(payload)
req.ContentLength = SomeBytes.Length
RequestStream = req.GetRequestStream()
RequestStream.Write(SomeBytes, 0, SomeBytes.Length)
RequestStream.Close()
Else
req.ContentLength = 0
End if
Dim result As WebResponse
Dim ReceiveStream As Stream
result = req.GetResponse()
ReceiveStream = result.GetResponseStream()
Dim read(512) As Byte
Dim bytes As Integer
bytes = ReceiveStream.Read(read, 0, 512)
Do while (bytes > 0)
Response.Write(System.Text.Encoding.default.GetString(read, 0, bytes))
bytes = ReceiveStream.Read(read, 0, 512)
Loop
End Sub
</script>
<%
getPage(\"http://gpsserver/study/test1.asp\",\"txtName=豆腐制作,都是精品\")
%>
我们看到,程序的输出就是我们的这个txtName的值,这就证实 我们的 模仿Post 的程序成功了!
返回类别: 教程
上一教程: 详解对密码执行散列和 salt 运算方式
下一教程: 带你走进ASP.NET(2)
您可以阅读与"如何用asp+获取post的页面的数据"相关的教程:
· 如何使用asp+ 动态创建页面元素
· asp+的页面指示标识
· asp+ 如何跨站抓取 页面
· asp+中是如何连接数据库ado+的
· 从ASP迁移至ASP+ --急不可耐了?转变其他的页面吧