request.get()解析,源码及实战

329 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情

requests.get概念

函数定义:def get(url, params=None, **kwargs),是requests模块中比较常用的方法之一,对标我们HTTP中的get的请求,常用在查询的功能。

参数解析

以下是requests.get的源码

image.png

由源码我们能够总结发现:

(1)url参数表示想要请求的目标服务器的链接。

(2)params参数表示请求中携带的参数,形式为:url?a=1&b=2&c=3

(3) **kwargs,传入不定长的键值对,提高get请求中的可拓展行,以支持不同类型的body或者headers

get请求通过params传参,那还有其他的方式进行传参吗?

1、get的请求默认是params传参,传入字典时转化为请求的形式是 url?a=1&b=2&c=3,所以需要对接口入参格式进行观察。

2、如果接口提取入参仍然是json,可以不传入params而传入json或者data,而data和json的传参区别和post中的区别一致

实例

例子1,接口接收参数形式是url?a=1&b=2&c=3

image.png 抓包可得请求方式是以url?a=1&b=2的形式

image.png 例子2,以json格式入参(有一些get请求也是通过body的方式来获取参数,而非url获取)

image.png 抓包获取请求方式可得请求体为json形式

image.png 总结如下:

在平时的工作中get请求也是一个比较常用的方法,而对于get请求参数的填写,需要根据请求的接口进行分别,因为目前市面上通过url获取请求参数只占到大部分,而有小部分get请求获取请求参数跟post还是比较相像,也是通过body去获取,而requests的强大就在于只需要简单的修改请求的方法便可以取实现不同类型的请求参数。归根到底便是所有requests下的不同请求,最终请求路径都是requests.session().request(method=method, url=url, **kwargs)。