美文网首页
post请求中的参数形式

post请求中的参数形式

作者: 花神子 | 来源:发表于2019-09-16 14:12 被阅读0次

Http_GET_POST

post请求中的参数形式

Angular的ajax功能

AngularJs的ajax的post请求参数就是提交的json字符串。如:
    var data = {'name':'jack'};
    $http.post(url,data).success(function(rsp){
        //    code
     })

常见的post请求方式:

(1)、application/x-www-form-urlencoded
这应该是最常见的 POST 提交数据的方式了。浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据:

<form action="form_action.asp" enctype="text/plain">
  <p>First name: <input type="text" name="fname" /></p>
  <p>Last name: <input type="text" name="lname" /></p>
  <input type="submit" value="Submit" />
</form>

此时可以看到,

Content-Type: application/x-www-form-urlencoded;charset=utf-8
title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3

首先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。大部分服务端语言都对这种方式很好的支持,常用的如jQuery中的ajax请求,Content-Type 默认值都是application/x-www-form-urlencoded;charset=utf-8

(2)、multipart/form-data
这也是常见的post请求方式,一般用来上传文件,各大服务器的支持也比较好。所以我们使用表单 上传文件 时,必须让<form>表单的enctype属性值为 multipart/form-data.

  • 注意:以上两种方式:application/x-www-form-urlencoded和multipart/form-data都是浏览器原生支持的。

(3)、application/json
application/json作为响应头并不陌生,实际上,现在很多时候也把它作为请求头,用来告诉服务端消息主体是序列化的JSON字符串,除了低版本的IE,基本都支持。除了低版本的IE都支持JSON.stringify()的方法,服务端也有处理JSON的函数,使用json不会有任何麻烦。例如:

//请求数据
var data = {name:'jack',sex:'man'};
//请求数据序列化处理
JSON.stingify(data);

//结果:{'name':'jack','sex':'man'};

(4)、text/xml

postman中post请求的form-data、x-www-form-urlencoded、raw、binary的区别

1、form-data:
等价于http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;
由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。

2、x-www-form-urlencoded:
等价于application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=java&age = 23.

3、raw
可以上传任意格式的文本,可以上传text、json、xml、html等

4、binary
相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。

multipart/form-data与x-www-form-urlencoded区别
multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。

相关文章

  • post请求中的参数形式

    Http_GET_POST post请求中的参数形式 Angular的ajax功能 常见的post请求方式: (1...

  • gf框架 ghttp使用

    案例中包含以下内容 get请求 get请求携带参数 post请求携带参数 post请求发送xml数据 post请求...

  • Python requests传参方式

    GET请求 无参数 有参数 POST请求 表单提交 x-www-form-urlencoded形式增加header...

  • post请求raw参数形式

    1.header 'Content-Type':'application/json' 2.参数转换成字符串 dat...

  • 服务器对ajax的post与get的

    AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式W...

  • GET和POST的区别

    POST请求和GET请求都可以传递参数。POST请求有body,参数数据放在body中。而GET请求参数数据放在h...

  • 带问号和等号的Python接口自动化调用说明

    请求URL出现这种带问号+参数的形式时,请求提交为表单格式 相应的Python request.post方法中应使...

  • 面试题总结(一)

    get和post请求的区别 1、安全性问题 a. get请求的参数全部暴露在接口中或网址中,且参数以明文的形式出现...

  • Get和Post的区别

    Get请求和Post请求区别如下: Post请求比Get请求更安全,get请求直接将参数放置在URL中,post请...

  • 装饰器-验证API入参

    这里主要验证GET请求和POST请求 GET传参 GET把参数包含在URL中 POST传参 POST参数放到bod...

网友评论

      本文标题:post请求中的参数形式

      本文链接:https://www.haomeiwen.com/subject/vanxuctx.html