python.requests模块总结

本文主要介绍了Python的requests模块,用于模拟HTTP请求,包括GET和POST方式。文中通过实例讲解了如何传递参数、处理JSON数据以及进行登录接口操作,并提到了利用postman进行接口测试的关联。同时,分享了在工作中学习接口自动化所遇到的挑战。
部署运行你感兴趣的模型镜像

之前接口这一块一直莫名其妙,做项目也没有深究,现在想要学习接口自动化,简直难于上青天,听不懂。
把它记录下来,可能会加强自己的理解。
requests模块,模拟的是http请求(包括https),相当于(postman,当时也没怎么好好学习postman,都是埋下的果……)
requests模块,是urlib的一个封装

url = "http://www.baidu.com/"

result = requests.get(url)
print(result)//上面的代码很容易就能看懂,就是一个url的请求,得到的内容是<Response [200]>
//其实result是一个对象,可以通过打断点来观察。
//比如 content:一个二进制文件,可以转义中文什么的
//其中一个元素status_code:200不需要多说,这就是返回成功了。
//text中其实就是接口返回的内容,是str类型的
//encoding:编码
//headers:返回的头部信息
//json():返回的就是json格式的信息

可以去www.bejson.com去把text给转换成json格式
同样的,当我们用百度做例子,用f12可以看到我们搜索传入的带参数的url,其中中文可能是一种unicode编码格式,我们可以去编码网站上编码解码。

下面讲讲带参数的接口:
我们可以直接把url传给requests.get(url),
可以通过print(result.json())来看

post方式:
res = requests.post(url,data = None,json = None,**kwags)
其中,可以弄data,或者json,data是form表单的形式,application/json就是json格式,不指定的话,默认就是data格式。对应我们用postman中去form或者row,json格式,是一个道理。

login登录接口:
经过前面的分析,很简单:res = requests.post(url,json = data)
print(res.json())我们能得到一个token接口
"JWT "+res.json()[token]就能得到token,再把这里的token用在下面。
登录之后,再requests一下请求头来进行别的接口请求,比如是一个订单查询的功能:
那么我们得在浏览器中抓到Authorization,和上面的token组合一下:
就会得到请求头:headers = {“Authorization”:token}
然后我们就可以通过request.get(url,headers = headers)
res = request.get(url,headers = headers),print(res.json)可以看到

总结的差不多了,接下来举个例子,也演示一下封装就洗洗睡了,真的是上班回来没时间学习,写一篇记录学习的博客就快1点了,唉,年轻时候作孽呀。废话不多说,上代码:

import requests


class HttpRequest:
    def __init__(self):
        pass

    @staticmethod
    def get_Headers(url, username, password):
        data = {"username": username, "password": password}
        res = requests.post(url, json=data)
        token = "JWT " + res.json()['token']
        return {'Authorization': token}

    @staticmethod
    def get(url, headers=None):
        return requests.get(url, headers=headers).json()

    @staticmethod
    def post(url, data=None, json=None, headers=None):
        return requests.post(url, data, json, headers=headers).json()


if __name__ == '__main__':
    url = "http://www.xxx.com/login/"
    headers = HttpRequest.get_Headers(url, "123", "whd")
    url = "http://www.xxx.com/xxx/"
    res = HttpRequest.get(url, headers)
    data = "xxxxxxxxx"
    res = HttpRequest.post(url, data)

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值