python中应用requests库模拟postman请求携带token,使用get和post方法请求头携带token

这篇具有很好参考价值的文章主要介绍了python中应用requests库模拟postman请求携带token,使用get和post方法请求头携带token。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:

实际开发中,Python程序中需要调用后台接口,充当前端,后端规定请求头需要携带token

封装的get和post类:

class RequestMethodCarryJson:
    """
    定义请求类型
    以json方式传递参数
    """

    def __init__(self):

        """初始化参数"""
        self.data = {}
        self.files = {}

    def get(self, url, data, headers):
        """
        定义get方法请求
        :return:
        """
        try:
            return requests.get(url=url, data=data, headers=headers, timeout=60)
        except TimeoutError:
            return print('%s get request timeout!' % url)

    def getCarryToken(self, url, data, headers):
        """
        定义get方法请求
        :return:
        """
        try:
            return requests.get(url=url, json=data, headers=headers, timeout=60)
        except TimeoutError:
            return print('%s get request timeout!' % url)

    def post(self, url, data, headers):
        """
        定义post方法请求
        post携带token,看起来不需要像get那样添加一个getCarryToken特有的识别方法
        :return:
        """
        try:
            return requests.post(url=url, data=json.dumps(data), headers=headers, timeout=60)
        except TimeoutError:
            return print('%s post request timeout!' % url)
class RequestMethodCarryFormData:
    """
    定义请求类型
    以表单方式form-data传递参数
    """

    def __init__(self):

        """初始化参数"""
        self.data = {}
        self.files = {}

    def get(self, url, data, headers):
        """
        定义get方法请求
        :return:
        """
        try:
            return requests.get(url=url, data=data, headers=headers, timeout=60)
        except TimeoutError:
            return print('%s get request timeout!' % url)

    def getCarryToken(self, url, data, headers):
        """
        定义get方法请求,额外添加token
        :return:
        """
        try:
            return requests.get(url=url, json=data, headers=headers, timeout=60)
        except TimeoutError:
            return print('%s get request timeout!' % url)

    def post(self, url, data, headers):
        """
        定义post方法请求
        这个携带json应该不需要额外改
        :return:
        """
        try:
            return requests.post(url=url, data=data, headers=headers, timeout=60)
        except TimeoutError:
            return print('%s post request timeout!' % url)

应用场景:

场景1——get请求时Headers携带token[传递参数以json格式]:

python requests token,python,python,postman,requests,token,请求头,get和post,以json和表单格式传递数据

python requests token,python,python,postman,requests,token,请求头,get和post,以json和表单格式传递数据

​token="里面填token内容"
test1Info = test1(token)

def test1(token):
    """
    携带token,
    访问平台已经存在的数据库,
    以json格式传递数据
    :param token:
    :return:
    """
    url = "http://127.0.0.1:8088/backup/url1"
    headers = {'Content-Type': 'application/json;charset=utf-8', 'token': token}
    data = dict()
    data["param1"] = "param1"
    data["param2"] = "param2"
    resp = RequestMethodCarryJson().getCarryToken(url, data, headers).json()
    dbInfo = resp["items"]
    return dbInfo

场景2——post请求时Headers携带token[传递参数以application/x-www-form-urlencoded(表单)格式]:

python requests token,python,python,postman,requests,token,请求头,get和post,以json和表单格式传递数据

python requests token,python,python,postman,requests,token,请求头,get和post,以json和表单格式传递数据

token="里面填token内容"
test2Info = test2(token)

def test2(token):
    url = "http://127.0.0.1:8088/testFormData/json/transfer"
    headers = {'Content-Type': 'application/x-www-form-urlencoded', 'token': token}
    data = dict()
    data["param1"] = "param1"
    """
    这里不接受状态码
    """
    resp = RequestMethodCarryFormData().post(url, data, headers).json()
    info = resp["items"]
    if info == "格式正确":
        return True
    else:
        return False

场景3——踩坑后总结成功的代码:

    """
    请求头携带token拿取信息:
    1-post-以json格式传递数据,请求头携带token成功
    形如:
    # resp = requests.post(url,json=data,headers=headers).json()
    resp = RequestMethodCarryJson().post(url, data, headers).json()


    2-get-以json格式传递数据,请求头携带token成功
    # resp = requests.get(url,json=data,headers=headers).json()
    resp = RequestMethodCarryJson().getCarryToken(url, data, headers).json()

    :param platformInfo:
    :return:
    """

延伸理解:

python requests token,python,python,postman,requests,token,请求头,get和post,以json和表单格式传递数据

相关资料参考:

postman中 form-data、x-www-form-urlencoded的区别_叫我峰兄的博客-CSDN博客

python requests 带请求头Token发起http请求_python request token_软件测试李同学的博客-CSDN博客

python发送requests请求时,使用登录的token值,作为下一个接口的请求头信息 - 大海一个人听 - 博客园 (cnblogs.com)文章来源地址https://www.toymoban.com/news/detail-589283.html

到了这里,关于python中应用requests库模拟postman请求携带token,使用get和post方法请求头携带token的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • postman请求携带Cookie

    本文提供一种让请求携带Cookie的高效解决方案,之前试过使用 Postman Interceptor 插件,但是刚开始配置完有效,过了一天后就失效了,所以自己去找其它方法实现了。 原文:语雀 **思路:使用环境变量 步骤 关闭自动生成的Cookie头 设置环境变量 把环境变量添加到请求参数中(

    2024年02月11日
    浏览(21)
  • python requests.get发送Http请求响应结果乱码、Postman请求结果正常

    最近在写爬虫程序,自己复制网页http请求的url、头部,使用python requests和postman分别请求,结果使用postman发送http get请求,可以得到正常的json数据,但是使用python的requests发送则接受到乱码,response.text的内容是: response.content的内容是: 十分费解,于是网上搜索了相关内容,

    2024年01月24日
    浏览(31)
  • Python+Requests模拟发送post请求

    发送post请求的基础知识dumps和loads 代码示例: 以微信开放平台举例 发送post请求 查看执行结果:  上传文件 查看执行结果  封装post请求 代码示例: 封装main方法 代码示例: 封装测试类 示例代码: 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用

    2024年02月07日
    浏览(27)
  • Python+Requests模拟发送GET请求

    前置条件: 导入requests库 一、发送不带参数的get请求 代码如下: 以百度首页为例 二、发送带参数的get请求 发送带参数的get请求有几种方式 方式一:参数在URL中 代码如下: 以百度首页为例 方式二:参数在字典中 代码如下: 以百度首页为例 获取响应数据的基本信息 代码如

    2024年01月20日
    浏览(23)
  • 【Uniapp】小程序携带Token请求接口+无感知登录方案2.0

    本次改进原文《【Uniapp】小程序携带Token请求接口+无感知登录方案》,在实际使用过程中我发现以下 bug : 若token恰好在用户访问接口时到期,就会直接查询为空,不反映token过期问题(例如:弹窗显示订单查询记录为空),并不是因为没有数据而是因为token过期了,接口返回

    2024年02月09日
    浏览(20)
  • postman发送post请求携带json参数获取为null的情况

        @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里    

    2024年02月13日
    浏览(38)
  • Postman使用技巧之Pre-request Script[自定义encode请求头]

    postman是web开发人员常用的开发工具, 如果遇到需要对请求头做统一的encode, 我们该如何做到呢? 这就是今天学到的新技能Pre-request Script. postman给我们提供了强大的http请求发起能力的同时, 还提供了请求发起的前置处理能力, 方便我们自定义请求的发起策略, 比如今天遇到的问题

    2024年02月11日
    浏览(22)
  • 【SpringCloud Gateway】SpringCloud各微服务之间用户登录信息共享的实现思路——gateway网关token校验以及向微服务发送请求携带token

            最近在学习SpringCloud项目时,想到了一些问题,各个微服务分别部署在不同的服务上,由naocs作为注册中心实现负载均衡,彼此之间通过Feign相互调用通信,信息同步并不像单体项目那样方便,传统单体项目的登录验证方式似乎在SpringCloud中不能满足项目的需求。那么

    2024年02月05日
    浏览(25)
  • requests库post请求参数data、json和files的使用,postman的各种数据格式

    application/x-www-form-urlencoded 和 application/json 是两种不同的 HTTP 请求体格式,它们在 Python 中的处理方式也不同。 application/x-www-form-urlencoded 是 Web 表单默认的提交方法,浏览器会将表单数据编码为 key-value 键值对,并将其放在请求体中。该格式数据可以通过 Python 中的标准库 url

    2024年02月16日
    浏览(34)
  • postman token 请求头添加

    思路: 1、登录成功后将 得到的token设置为集合变量 2、在需要携带Authorization的请求头上使用该集合变量 关键代码

    2024年02月09日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包