Post请求

写在前面的话:

XMLHttpRequest对象的open方法的第一个参数为request-type,取值可以为get或post.本篇介绍post请求.

使用post方式时,浏览器会把各表单中字段元素及其数据作为Http消息的实体内容发送给Web服务器.

使用post方式时,要注意设置Content-Type的内容为application/x-www-form-urlencoded,设置此内容是为了确保服务器知道实体中有参数变量.

使用post方式时,参数是随着send方法发送出去的,如send(data).

使用post方式时,服务器端获取参数时,需要使用Request.Form[data].

例子

客户端HTML代码不变,js代码如下:

function btn_click() {
    //获取参数
    var username = document.getElementById("txt_username").value;
    var age = document.getElementById("txt_age").value;
    //设置字符串参数,并进行编码
    var args = "username=" + encodeURIComponent(username) + "&age=" + encodeURIComponent(age);

    //创建XMLHttpRequest对象
    var xmlHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");

    //配置连接及方式
    //使用post方式不用担心缓存问题
    xmlHttp.open("post", "post.aspx", true);

    //设置Content-Type类型为aapplication/x-www-form-urlencoded,以告知服务器实体中有参数
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

    //设置回调函数
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
            document.getElementById("result").innerHTML = xmlHttp.responseText;
        }
    }

    //发送参数
    xmlHttp.send(args);
} 

服务器端代码:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Clear();

    //使用Request.Form来获取数据
    string username = Request.Form["username"];
    int age = int.Parse(Request.Form["age"]);

    Response.Write("姓名:'" + username + "'<br/>年龄:" + age + "<br/>时间:'" + DateTime.Now.ToString() + "'");

    Response.End();
}

现在,我们仍然输入张三,30这两条数据,然后实用工具检查下,看到底发送了什么.

OverView:

image

发送的HTTP Header:

image

获取的HTTP Header

image

缓存:(此处可以看出,post请求是不会被换缓存的)

image

Post的内容:(在get请求时,数据是通过url发送的)

image 

小结:

本片介绍了post是如何使用的.随后的文章,我们会对get请求与post请求做个比较,究竟什么时候适合get请求,什么时候适合post请求呢.

转载于:https://www.cnblogs.com/oneword/archive/2011/06/04/2072593.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
selenium是一个用于自动化浏览器操作的工具,可以模拟浏览器的行为,进行网页的交互操作。对于post请求,selenium同样提供了相应的方法来实现。 在selenium中,我们可以使用WebDriver的`execute_script()`方法来执行JavaScript代码,从而模拟post请求。具体的步骤如下: 1. 创建一个WebDriver实例:首先,我们需要安装selenium,并导入相应的库。然后,创建一个WebDriver实例,例如ChromeDriver。 2. 打开目标网页:使用`get()`方法打开目标网页。 3. 准备post请求数据:获取需要发送的post请求的数据,可以通过找到对应的表单元素进行获取,或者手动构造数据。 4. 构造并执行post请求:使用JavaScript代码构造post请求,并通过`execute_script()`方法执行。例如,可以使用XMLHttpRequest对象来发送post请求,将准备好的数据传递进去。 5. 处理返回结果:处理post请求的返回结果,可以使用JavaScript代码提取需要的信息,或者使用WebDriver提供的方法来获取返回的网页内容。 6. 关闭WebDriver实例:完成后,记得关闭WebDriver实例。 需要注意的是,selenium的post请求是模拟浏览器的行为,并不是直接发送请求到服务器。因此,post请求在浏览器中执行时会产生网络请求,但实际的请求并没有发送出去。如果需要直接发送post请求到服务器,并获取返回的结果,可以考虑使用其他方法,如requests库等。 总而言之,selenium可以通过模拟浏览器行为实现post请求,但是对于直接发送post请求到服务器并获取结果,建议使用其他库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值