Python接口自动化使用requests库发送http请求

本文介绍了Python接口自动化中使用requests库发送HTTP请求的方法,包括GET、POST请求的实现,响应数据的获取,以及高级操作如文件下载、上传、SSL证书验证和会话保持。详细讲解了requests库的使用,是测试工程师和程序员进行接口测试的实用教程。
摘要由CSDN通过智能技术生成

前言

今天笔者想和大家来聊聊python接口自动化如何使用requests库发送http请求,废话呢笔者就不多说了,直接进入正题。

一、requests库

什么是Requests ?Requests 是⽤Python语⾔编写,基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库。它⽐ urllib 更加⽅便,可以节约我们⼤量的⼯作,完全满⾜HTTP测试需求。

安装:cmd命令行执行pip install requests

二、HTTP 请求方法

HTTP 协议 (Hyper Text Transfer Protocol),一个基于TCP/IP通信协议来传递数据,包括html文件、图像、结果等,即是一个客户端和服务器端请求和应答的标准。根据HTTP 标准,HTTP 请求可以使用多种请求方法。

  • HTTP 0.9:只有基本的文本GET请求,没有固定的版本号,不支持请求头。
  • HTTP 1.0:完善的请求/响应模型,并将协议补充完整,定义了三种请求方法:GET,POST和HEAD方法。
  • HTTP 1.1:在1.0的基础上进行更新,新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法。
  • HTTP 2.0(未普及):请求/响应首部的定义基本没有改变,只是所有首部键必须全部小写,而且请求行要独立为:method、:scheme、:host、:path这些键值

HTTP请求常用的Get和Post两种方法:

  • GET是从服务器上获取数据,POST是向服务器传送数据
  • GET请求参数都显示在浏览器网址上,HTTP服务器根据该请求所包含URL中的参数来产生响应内容,也就是说GET请求的参数是URL的一部分。比如百度requests模块
  • POST请求参数是在请求体当中,消息长度没有限制且以隐式的方式进行传送,通常用来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等),请求的参数包含在“Content-Type”消息头里,指明该消息体的媒体类型和编码

三、发送GET请求

关键代码:requests.get(url)

参数说明:若需要传请求参数,可直接在 url 后面添加,也可以在调用get()方法时通过关键字params传入,需要注意的是params需要传入dict(字典)类型。

下面以请求百度为例,发送get请求:

1

2

3

4

5

6

7

8

import requests

  

# 通过url直接加上请求参数,与通过params传参效果是一样的

response = requests.get(url='http://www.baidu.com/s?wd=requests模块')

# 通过params传参

response2 = requests.get(url='http://www.baidu.com/s', params={ "wd": "requests模块"})

print(response.status_code)     # 打印状态码

# print(response.text)      # 获取响应内容

​ 运行结果:

C:\software\python\python.exe D:/learn/test.py
200
 nished with exit code 0

四、发送POST请求

​ 关键代码:requests.post(url, data)

参数说明:可传dict类型也可传json类型,dict类型使用关键字data传参,json类型则为使用关键字json传参。若无需传参可不传。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

register_url = "http://127.0.0.1:666/index/register"

  

# 添加请求头࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值