Requests库01|使用Requests库发送 get/post/put/delete请求

学习目标:

能够使用Requests库发送 get/post/put/delete请求,获取响应状态码、数据能够使用UnitTest管理测试用例。

目录

一、Requests库安装和简介

二、设置http请求语法(重要)

三、应用案例(重要)

1、tpshop搜索:GET

2、tpshop登录:POST

3、ihrm登录:POST

4、修改和删除:PUT、DELETE


一、Requests库安装和简介

  • 简介: Requests库 是 Python编写的,基于urllib 的 HTTP库,所以可以发送各种http请求。
  • 安装:
 pip install requests -i 镜像源

二、设置http请求语法(重要)

resp = requests.请求方法(url='URL地址', params={k:v}, headers={k:v}, data={k:v}, json=                                               {k:v},cookies='cookie数据'(如:令牌))

请求方法:

        get请求          - get()

        post请求        - post()

        put请求          - put()

        delete请求     - delete()

  • url: 待请求的url                   - string类型
  • params:查询参数             - 字典
  • headers:请求头                - 字典
  • data:表单格式的 请求体   - 字典
  • json:json格式的 请求体    - 字典
  • cookies:cookie数据          - string类型
  • resp:响应结果

【补充】python中的字符串可以用单引号也可以用双引号包裹,sql语句中的字符串必须用单引号包裹。

入门案例:使用Requests库访问  百度 http://www.baidu.com

三、应用案例(重要)

tpshop前台:  

1、tpshop搜索:GET

【带查询参数的get请求】使用Requests库,请求 tpshop商城 搜索商品接口。查询 iphone

准备工作:使用网页的开发者工具抓包获取请求的url(方便写代码的时候复制粘贴)

import requests

# 发送 get 请求,指定 url,获取 响应结果
# 方法一
# resp = requests.get(url="http://demo6.tp-shop.cn/Home/Goods/search.html?q=iphone")

# 方法2
resp = requests.get(url="http://demo6.tp-shop.cn/Home/Goods/search.html",
                    params={"q":"iphone"})

# 查询响应结果
print(resp.text)

2、tpshop登录:POST

【带表单数据的post请求】使用Requests库,完成 tpshop商城 登录接口调用。返回 ”验证码错误“ 即可。

准备工作:使用网页的开发者工具抓包获取请求的url,注意要输入错误的密码,不然就跳转了,抓不到包。

import requests
# 发送 post 请求,指定url、请求头、请求体, 获取响应结果
resp = requests.post(url="http://demo6.tp-shop.cn/index.php?m=Home&c=User&a=do_login&t=0.27081766186875456",
              headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},
              json={"username":"188xxxxxxxx","password":"111111","verify_code":"xy8p"})

# 打印响应结果 - 文本
print(resp.text)
# 打印响应结果 - json
print(resp.json())
运行结果

3、ihrm登录:POST

【带 json数据 的post请求】使用Requests库,完成 iHRM系统 成功登录。返回 ”令牌数据“

import requests
 
# 发送 post 登录请求,指定 url、请求头、请求体,获取响应结果
resp = requests.post(url="http://ihrm-test.itheima.net/api/sys/login",
                     # headers={"Content-Type": "application/json"},
                     json={"mobile": "13800000002", "password": "123456"})
# 打印响应结果
print(resp.json())

#最终结果中的data数据就是令牌
data数据就是令牌

  • 如果响应结果是个网页,用text打印结果
  •  如果响应结果是个表单或json数据,用json打印结果

4、修改和删除:PUT、DELETE

【发送 put、delete请求】使用Requests库发送 ihrm系统 修改员工信息、删除员工信息 请求。

# -------- 修改 put
import requests
 
resp = requests.put(url="http://ihrm-test.itheima.net/api/sys/user/1467780995754229760",
                    headers={"Authorization": "Bearer 4c51c601-c3f7-4d1a-a738-7848f2439f45"},
                    json={"username": "齐天大圣"})
print(resp.json())
 
# -------- 删除 delete
import requests
 
resp = requests.delete(url="http://ihrm-test.itheima.net/api/sys/user/1467780995754229760",
                       headers={"Authorization": "Bearer 4c51c601-c3f7-4d1a-a738-7848f2439f45"})
 
print(resp.json())

全部内容:

Requests库01|使用Requests库发送 get/post/put/delete请求-CSDN博客

Requests库02|Cookie和Session-CSDN博客

Requests库03|Unittest框架集成Requests库-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/946791.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[有用教程]从 Pixel 快速传输到 Android

概括 更换新手机很容易,但数据迁移却不容易。目前,用户喜欢转换品牌,应用市场上的转换工具也越来越多。然而,它们并不都是安全的。因此,选择一款简单、安全的迁移工具至关重要。 今天我们将讨论如何从 Pixel 转移到 …

【蓝桥杯研究生组】第15届Java试题答案整理

D 题 试题 D: 商品库存管理 时间限制: 3.0s 内存限制: 512.0MB 本题总分:10 分 【问题描述】 在库存管理系统中,跟踪和调节商品库存量是关键任务之一。小蓝经营的仓库中存有多种商品,这些商品根据类别和规格被有序地分类并编号,…

BUUCTF sqli-labs 1

这里就是单纯的找一下flag在哪,通关整个靶场在sql注入分区,虽然还没有通关。 这里要先看一下数据库都有哪些,用到语句:?id-1 union select 1,(select group_concat(schema_name) from information_schema.schemata),3-- 发现这个…

python实现自动登录12306抢票 -- selenium

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 python实现自动登录12306抢票 -- selenium 前言其实网上也出现了很多12306的代码,但是都不是最新的,我也是从网上找别人的帖子,看B站视频&…

Spring自动化创建脚本-解放繁琐的初始化配置!!!(自动化SSM整合)

一、实现功能(原创,转载请告知) 1.自动配置pom配置文件 2.自动识别数据库及数据表,创建Entity、Dao、Service、Controller等 3.自动创建database.properties、mybatis-config.xml等数据库文件 4.自动创建spring-dao.xml spring-mvc.xml …

[微服务] - MQ高级

在昨天的练习作业中,我们改造了余额支付功能,在支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。 但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订单…

MySQL(面试题 - 同类型归纳面试题)

目录 一、MySQL 数据类型 1. 数据库存储日期格式时,如何考虑时区转换问题? 2. Blob和text有什么区别? 3. mysql里记录货币用什么字段类型比较好? 4. MySQL如何获取当前日期? 5. 你们数据库是否支持emoji表情存储…

aws(学习笔记第二十一课) 开发lambda应用程序

aws(学习笔记第二十一课) 开发lambda应用程序 学习内容: lambda的整体概念开发lambda应用程序 1. lambda的整体概念 借助AWS Lambda,无需预置或管理服务器即可运行代码。只需为使用的计算时间付费。借助 Lambda,可以为几乎任何类型的应用进…

【优选算法】查找总价格为目标值的两个商品

链接&#xff1a;LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;利用单调性&#xff0c;使用双指针算法解决问题 1.先从小到大排序 2. sum > t : right--; sum < t : left; sum t : return class Solution {public…

VUE echarts 教程二 折线堆叠图

VUE echarts 教程一 折线图 import * as echarts from echarts;var chartDom document.getElementById(main); var myChart echarts.init(chartDom); var option {title: {text: Stacked Line},tooltip: {trigger: axis},legend: {data: [Email, Union Ads, Video Ads, Dir…

bilibili 哔哩哔哩小游戏SDK接入

小游戏的文档 简介 bilibili小游戏bilibili小游戏具有便捷、轻量、免安装的特点。游戏包由云端托管&#xff0c;在哔哩哔哩APP内投放和运行&#xff0c;体验流畅&#xff0c;安全可靠。https://miniapp.bilibili.com/small-game-doc/guide/intro/ 没想过接入这个sdk比ios还难…

2024年中国新能源汽车用车发展怎么样 PaperGPT(二)

用车趋势深入分析 接上文&#xff0c;2024年中国新能源汽车用车发展怎么样 PaperGPT&#xff08;一&#xff09;-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程&#xff1a;2024年纯电车辆月均行驶超过1500公里&…

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码&#xff0c;我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时&#xff0c;才会发现它就像一本魔法书&#xff0c;轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具&#xff1f;它究…

简易屏幕共享工具-基于WebSocket

前面写了两个简单的屏幕共享工具&#xff0c;不过那只是为了验证通过截屏的方式是否可行&#xff0c;因为通常手动截屏的频率很低&#xff0c;而对于视频来说它的帧率要求就很高了&#xff0c;至少要一秒30帧率左右。所以&#xff0c;经过实际的截屏工具验证&#xff0c;我了解…

yakit-靶场-高级前端加解密与验签实战(for嵌套纯享版)

高级前端加解密与验签实战 一、前端验证签名&#xff08;验签&#xff09;表单&#xff1a;HMAC-SHA256 使用hmac-sha256的十六进制key值可以加密 与页面加密后的值相同 热加载&#xff1a; encryptData func(p) { //sha256key值key codec.DecodeHex("313233343132333…

嵌入式入门Day35

网络编程 Day2 套接字socket基于TCP通信的流程服务器端客户端TCP通信API 基于UDP通信的流程服务器端客户端 作业 套接字socket socket套接字本质是一个特殊的文件&#xff0c;在原始的Linux中&#xff0c;它和管道&#xff0c;消息队列&#xff0c;共享内存&#xff0c;信号等…

模仿微信小程序wx.showModal自定义弹窗,内容可以修改

实现以下弹框样式功能 1.在components新建一个文件showModel.wpy作为组件&#xff0c;复制下面代码 <style lang"less" scoped> .bg_model {display: flex;justify-content: center;align-items: center;// 弹框背景.bg_hui {width: 100%;height: 100%;posi…

如何在 Ubuntu 22.04 上安装并开始使用 RabbitMQ

简介 消息代理是中间应用程序&#xff0c;在不同服务之间提供可靠和稳定的通信方面发挥着关键作用。它们可以将传入的请求存储在队列中&#xff0c;并逐个提供给接收服务。通过以这种方式解耦服务&#xff0c;你可以使其更具可扩展性和性能。 RabbitMQ 是一种流行的开源消息代…

分布式系统架构6:链路追踪

这是小卷对分布式系统架构学习的第6篇文章&#xff0c;关于链路追踪&#xff0c;之前写过traceId的相关内容&#xff1a;https://juejin.cn/post/7135611432808218661&#xff0c;不过之前写的太浅了&#xff0c;且不成系统&#xff0c;只是简单的理解&#xff0c;今天来捋一下…

python opencv的orb特征检测(Oriented FAST and Rotated BRIEF)

官方文档&#xff1a;https://docs.opencv.org/4.10.0/d1/d89/tutorial_py_orb.html SIFT/SURF/ORB对比 https://www.bilibili.com/video/BV1Yw411S7hH?spm_id_from333.788.player.switch&vd_source26bb43d70f463acac2b0cce092be2eaa&p80 ORB代码 import numpy a…