6. get请求(url详解)7. post请求(json)

527 阅读4分钟

前言

上一篇介绍了Composer的功能,可以模拟get和post请求,get请求有些是不带参数的,这种比较容易,直接放到url地址栏就行。有些get请求会带有参数,本篇详细介绍url地址格式。

一、url详解

1.url就是我们平常打开百度在地址栏输入的:https:www.baidu.com,如下图,这个是最简单的url地址,打开的是百度的主页

2.再看一个稍微复杂一点的url,在百度输入框输入:上海悠悠博客园

3.查看url地址栏,对比之前的百度首页url地址,后面多了很多参数。当然最主要的参数是:wd=上海悠悠博客园(后面的一大串可以暂时忽略)。

4.那么问题来了,这些参数有什么作用呢?

可以做个简单的对比,在地址栏分别输入:

https:www.baidu.com

www.baidu.com/s?wd=上海悠悠博客…

对比打开的页面有什么不一样,现在知道作用了吧,也就是说这个多的"/s?wd=上海悠悠博客园"就是搜索的结果页面

二、url解析

1.以"www.baidu.com/s?wd=上海悠悠博客…](p6-juejin.byteimg.com/tos-cn-i-k3…?)

2.那么一个完整的url地址,基本格式如下:

https://host:port/path?xxx=aaa&ooo=bbb

–http/https:这个是协议类型,如图中1所示

–host:服务器的IP地址或者域名,如图中2所示

–port:HTTP服务器的默认端口是80,这种情况下端口号可以省略。

如果使用了别的端口,必须指明,例如:192.168.3.111:8080,这里的8080就是端口

–path:访问资源的路径,如图中3所示/s (图中3是把path和请求参数放一起了)

–?:url里面的?这个符号是个分割线,用来区分问号前面的是path,问号后面的是参数

–url-params:问号后面的是请求参数,格式:xxx=aaa,如图4区域就是请求参数

–&:多个参数用&符号连接

三、请求参数(params)

1.在url里面请求参数一般叫params,但是我们在fiddler抓包工具看到的参数是:QueryString

2.QueryString是像服务端提交的参数,其实跟params是一个意思,每个参数对应的都有name和value值

3.多个参数情况如下

四、UrlEncode编码

1.如果url地址的参数带有中文的,一般在url里面会是这样的,如第二点里的wd=%E4%B8%8A%E6%B5%B7%E6%…

像看到%E4这种编码的就是经过url编码过的,需要解码就能看到是什么中文了

2.用urlencode在线编码/解码工具,地址:tool.chinaz.com/tools/urlen…](p1-juejin.byteimg.com/tos-cn-i-k3…?)

7. post请求(json)

前言上一篇讲过get请求的参数都在url里,post的请求相对于get请求多了个body部分,本篇就详细讲解下body部分参数的几种形式。

一、body数据类型

常见的post提交数据类型有四种:

1.第一种:application/json:这是最常见的json格式,也是非常友好的深受小伙伴喜欢的一种,如下

{“input1”:“xxx”,“input2”:“ooo”,“remember”:false}

2.第二种:application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数

input1=xxx&input2=ooo&remember=false

3.第三种:multipart/form-data:这一种是表单格式的,数据类型如下

4.第四种:text/xml:这种直接传的xml格式

二、json格式

1.打开博客园的登录页面,输入账号密码后抓包,查看post提交数据,点开Raw查看整个请求的原始数据

2.前面讲过post的请求多一个body部分,上图红色区域就是博客园登录接口的body部分,很明显这种格式是前面讲到的第一种json格式

3.查看json格式的树状结构,更友好,可以点开JSON菜单项

4.查看这里的json数据,很明显传了三个参数:

–input1:这个是登录的账号参数(加密过)

–input2:这个是登录的秘密参数(加密过)

–remember:这个是登录页面的勾选是否记住密码的选项,False是不记住,True是记住

三、x-www-form-urlencoded

1.登录博客园后,打开新随笔,随便写一个标题和一个正文后保存,抓包数据如下

2.如上图的这种格式,很明显就属于第二种了,这种类型的数据查看,在WebFrom里面查看了

3.上面红色框框的Query String是url里面的参数,下面红色框框的body部分就是这次post提交的body参数部分了

四、WebFrom

1.为什么登录请求的WebFrom的body部分为空呢?

2.看上图红色框框的显示:这里只支持application/x-www-form-urlencoded这种格式的body参数,也就是说json格式的,需要在JOSN这一栏查看了

五、xml

1.如果遇到text/xml这种格式的body,那就如下图这样的了