ASP利用XMLHTTP实现表单提交以及cookies的发送的代码

确实,如果在原网站如果存在表单提交或cookies的验证,对于ASP来说,不使用基于SOCKET的组件就难以完成,其实,XMLHTTP的另外两个方法被我们忽略了,而这正是问题的关键。

下面首先来说说这个方法

1。.send() 
       由于流行的小偷是使用的GET而不是POST来传送数据,所以很多人忽略了这个方法,而使用SEND发送数据也很简单,就是SEND("内容"),可是,

发送表单就不是这么简单,因为你发送的表单如果是中文的话,就要牵扯到编码的问题了。

首先,你在OPEN 时要确定是用POST 即 .open("POST",地址,是否异步) 。

然后,在SEND里面加上你表单的内容,比如说,你要提交的表单有3个表单域,分别是A,B,C,对应的值分别是1,2,3,那么,你在SEND里这样写就可以提交表单了,.send("A=1&B=2&C=3"),怎么样,很简单吧,是不是没想到呢?但是别高兴的太早了,我前面说到了,如果表单的值是中文的话,数据传输的就会出错了。这里我们借助一个函数escape(),熟悉JAVASCRIPT的朋友都应该知道这个函数的作用了,现在VBSCRIPT同样支持这个函数。.send("A=escape('值1')&B=escape('值2')&C=escape('值3')") 。

2。.setRequestHeader() 
       接着上面的所说,你的数据send出去了,对方却不会接收到,为什么了,其实,那是因为你的HTTP头少了一个东西,然后用这个函数把加上去就可以了,具体就是.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded"), 告诉对方你是提交了一个urlencode编码的表单。

好的,说完了表单的提交来说怎么传送cookies。

其实传送cookies也很简单了,同样利用这个函数在HTTP头里添加东西,比如,我当前在落伍的cookies是 
cdb_sid=ybBiK0; cdb_cookietime=315360000; cdb_oldtopics=D869008D; cdb_visitedfid=1D45; cdb_auth=AQYHXVFDGERdsggVQA1VYUgxQDwFVV1dUAlwFAFRXVwU%2FbAIJB1lUCg; cdb_fid45=1113370145 
       现在我要发送这个cookies就直接是 .setRequestHeader("Cookie","cdb_sid=ybBiK0; cdb_cookietime=315360000; cdb_oldtopics=D869008D; cdb_visitedfid=1D45; cdb_auth=AQYHXVFDGERdsggVQA1VYUgxQDwFVV1dUAlwFAFRXVwU%2FbAIJB1lUCg; cdb_fid45=1113370145") 
       当然,有些网站页面有页面判断功能,这个也不难,就是.setRequestHeader("Referer","来路的绝对地址")

(0)

相关推荐

  • Python模仿POST提交HTTP数据及使用Cookie值的方法

    本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考.具体实现方法如下: 方法一 如果不使用Cookie, 发送HTTP POST非常简单: 复制代码 代码如下: import urllib2, urllib data = {'name' : 'www', 'password' : '123456'} f = urllib2.urlopen(         url     = 'http://www.jb51.net/',      

  • 详解HTTP Cookie状态管理机制

    HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解.首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知道它是如何工作的.第二个问题是对于cookies缺少一个一致性的接口.尽管存在着这些问题,cookies仍旧在web开发中起着如此重要的作用,以至于如果cookie在没有可替代品出现的情况下消失,我们许多喜欢的Web应用将变得毫无用处. 一.cookie 起源 cookie 最早是网景公司的雇员 Lou Mo

  • 利用Microsoft.XMLHTTP控件发送COOKIE

    作者:czy <czy82@elong.com> 出处:http://www.nsfocus.net 日期:2003-09-03 (注意由于论坛会对文章中的一些字符作处理,所以最好到 http://www.chinansl.com/czy/xmlhttp.txt看文章 http://www.chinansl.com/czy/aspsky5.htm测试代码) 跨站脚本攻击想必各位都已经是很熟悉了,但是得到COOKIE的时候一直有一个 问题:总是要用WINDOW.OPEN弹一个窗体出来然后发送CO

  • C# HttpClient Cookie验证解决方法

    自实现的cookie 验证,远程取值的例子 以下代码配合HttpClient使用可以实现跨域(cookie的读写) //验证 复制代码 代码如下: HttpClient httpClient = new HttpClient(url, null, true); httpClient.PostingData.Add(key,value);//登录用户名 httpClient.PostingData.Add(key,value);//密码 string str = httpClient.GetStr

  • AndroidHttpClient使用Cookie应用分析

    今天想把一个用使用了HttpClient的自动签到小程序移植到Android上,还好Android的SDK自带了HttpClient的包.翻Android的文档时发现官方还提供了一个实现了HttpClient接口的AndroidHttpClient,上网搜了下没发现关于AndroidHttpClient的文章.当然也可以继续使用DefaultHttpClient,但用为Android定制的AndroidHttpClient自然更好. 下面是2个测试用的HttpServlet: 复制代码 代码如下

  • .net 获取浏览器Cookie(包括HttpOnly)实例分享

    一.接口文件 复制代码 代码如下: using System; using System.ComponentModel; using System.Net; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Text; namespace CookieHandler {     internal sealed class INat

  • httpclient模拟登陆具体实现(使用js设置cookie)

    httpclient模拟登陆(使用js设置cookie) 复制代码 代码如下: <html> <meta http-equiv='Content-Type' content='text/html; charset=gb2312'> <link rel=stylesheet type=text/css href='/bbs.css'> <script>document.cookie='utmpnum=51;path=/;domain=.' + window.l

  • 用VBS实现的发送带Cookie的HTTP请求的代码

    为了方便测试,先写一个回显Cookie的简单的PHP程序: 复制代码 代码如下: <?php foreach($_COOKIE as $key => $value) echo "$key => $value\r\n"; ?> 然后分别用ServerXMLHTTP和XMLHTTP测试: 复制代码 代码如下: Dim http Set http = CreateObject("Msxml2.XMLHTTP") http.open "GE

  • ASP利用XMLHTTP实现表单提交以及cookies的发送的代码

    确实,如果在原网站如果存在表单提交或cookies的验证,对于ASP来说,不使用基于SOCKET的组件就难以完成,其实,XMLHTTP的另外两个方法被我们忽略了,而这正是问题的关键. 下面首先来说说这个方法 1..send()         由于流行的小偷是使用的GET而不是POST来传送数据,所以很多人忽略了这个方法,而使用SEND发送数据也很简单,就是SEND("内容"),可是, 发送表单就不是这么简单,因为你发送的表单如果是中文的话,就要牵扯到编码的问题了. 首先,你在OPEN

  • ASP小偷程序如何利用XMLHTTP实现表单的提交

    [原创]ASP小偷程序如何利用XMLHTTP实现表单的提交以及cookies或session的发送 利用XMLHTTP来制作小偷的具体细节落伍很多人都发过和讨论过了,但是在制作ASP小偷的过程中,很多人就发现ASP小偷不如PHP小偷的那么强 大了.确实,如果在原网站如果存在表单提交或cookies的验证,对于ASP来说,不使用基于SOCKET的组件就难以完成,其实,XMLHTTP的另外两 个方法被我们忽略了,而这正是问题的关键. 下面首先来说说这个方法 1..send() 由于流行的小偷是使用的

  • EasyUI在表单提交之前进行验证的实例代码

    使用EasyUi我们可以在客户端表单提交之前进行验证,过程如下:只需在onSubmit的时候使用return $("#form1").form('validate')方法即可,EasyUi中form模块中的from('validate')方法会自行对我们指定的表单中required=true等需要验证的的元素进行验证,但有不通过的元素时返回一个false; $("#form").form({ url: 'login.ashx', onSubmit: function

  • 利用JavaScript阻止表单提交的两种方法

    在JavaScript中,阻止表单默认提交行为的方法有两种,分别是: (1) return false 示例代码 <form name="loginForm" action="login.aspx" method="post"> <button type="submit" value="Submit" id="submit">Submit</button&g

  • jQuery select表单提交省市区城市三级联动核心代码

    jQuery select表单提交省市区城市三级联动,引用的是"jquery-1.7.min"类库,地区码查询地区名用数组存在AreaData_min,下面摘要部分代码: SelectArea.htm文件 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition

  • 在表单提交前进行验证的几种方式整理

    在表单提交前进行验证的几种方式 . 在Django中,为了减轻后台压力,可以利用JavaScript在表单提交前对表单数据进行验证.下面提供了有效的几种方式(每个.html文件为一种方式). formpage1.html 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional

  • HttpClient实现表单提交上传文件

    本文实例为大家分享了HttpClient实现表单提交上传文件的具体代码,供大家参考,具体内容如下 需求:如何利用HttpClient,发起post请求,模拟表单提交,在后端上传文件? 上传文件接口: /**      * 文件上传测试接口      * @return      */     @PostMapping("/upload")     public Object uploadFileTest(@RequestParam("file") Multipart

  • 表单提交前触发函数返回true表单才会提交

    直接看代码 复制代码 代码如下: <form id="payForm" action="yeepaypay.html" target="_blank" method="post" onsubmit="return checkform();"> 例子中的onsubmit函数即为表单提交前触发的函数 复制代码 代码如下: function checkform() { var value = $(&q

  • Asp.Net模拟表单提交数据和上传文件的实现代码

    如果你需要跨域上传内容到另外一个域名并且需要获取返回值,使用Asp.Net的作为代理是最好的办法,要是客户端直接提交到iframe中,由于跨域是无法用javascript获取到iframe中返回的内容的.此时需要在自己的网站做一个动态页作为代理,将表单提交到动态页,动态页负责将表单的内容使用WebClient或HttpWebRequest将表单数据再上传到远程服务器,由于在服务器端进行操作,就不存在跨域问题了. WebClient上传只包含键值对的文本信息示例代码: 复制代码 代码如下: str

  • Asp.net webForm设置允许表单提交Html的方法

    1.在表单需要提交Html的页面头部加入  ValidateRequest="false" <%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" %> 2.webConfig 的  <system.web> 节点下配置 <httpRuntime requestValidationMode="2.0&qu

随机推荐