python-发送get post patch delete请求

前言

主流接口设计是restful,restful概括如下:
1.每个URL是一个资源
2.通过四个动作拿到资源,get post put delete
本文介绍通过python发送get post put delete四种请求。

GET请求

import requests
import json
import random

from common import test_login

class TestDemo:
    #调接口获取header(header中包含token)
    def test_token(self):
        headers = test_login.Testlogin.test_get_token(self)
        return headers

    #调接口请求设备类型
    def test_template_get(self):
        url = 'https://XXXX/api/thing-device/v1/thingtemplate'
        payload = {'size': 1}
        r = requests.get(url, params=payload, headers=self.test_token())

        # 将字符型转为字典型
        obtain = json.loads(r.text)
        # 提取templateId
        templateId = obtain['data']['rows'][0]['templateId']
        print(templateId)
        return templateId

导入requests,需要字典和json格式转换导入json,设备名称不能重复导入随机函数random。

test_login是登陆,放在common路径下,发送请求header中带token,导入test_login。
引用其他文件夹的方法,格式如下:
headers = test_login.Testlogin.test_get_token(self)
test_login是模块名
Testlogin是测试类
test_get_token是方法
登陆
引用同一模块的方法,格式如下:
a = self.test_token()
r = requests.get(url, params=payload, headers=self.test_token())

POST请求

    def test_thing_post(self):
        url = 'https://XXX'
        payload ={
            "description": "9810273721",
            "deviceId": random.randrange(20, 999999, 1),
            "enable": True,
            "templateId": self.test_template_get(),
            "title": random.randrange(20, 999999, 1)
        }
        # 将python对象转码成json字符串
        # payload = json.dumps(payload)
        r = requests.post(url, headers=self.test_token(), json=payload)
        print(r.text)
        assert r.status_code == 200
        assert r.json()['message'] == "新增成功"

r = requests.post(url, headers=self.test_token(), data=payload)

payloa是python对象,直接请求接口报错,有两种方法:
1.payload = json.dumps(payload)
将python对象转码成json字符串
2.请求接口时,将data=payload改为json=payload

其他:
1.python中bool型需要首字母大写,True False
2.随机整数random.randrange(20, 999999, 1)

PATCH

    def test_template_patch(self):
        url = f'https://XXXXX/{self.test_template_get()}'
        payload = {
            "templateName": "123",
            "description": ""
        }
        print(url)
        print(payload, u'数据类型:', type(payload))
        r = requests.patch(url, json=payload, headers=self.test_token())
        print(r.text)
        print(r.request.headers)
        assert r.json()['message'] == "修改成功!"

DELETE

    def test_thing_delete(self):
        url = f'https://XXXXXX/{self.test_thing_get()}'
        print(url)
        r = requests.delete(url, headers=self.test_token())
        print(r.text)
        assert r.status_code == 200
        assert r.json()['message'] == "删除成功"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值