1.Python+requests库的基本入门

一、request库的安装

在dos窗口中输入命令:

pip install requests

二、Python发送http请求

2.1 不同请求方式发送请求

get请求:

import requests
# 发送请求
response = requests.get('http://www.baidu.com')
# 查看当前编码格式
print(response.encoding)
# 修改编码格式
response.encoding = 'UTF-8'
# 查看响应
print(response.text)

post请求:

import requests
#定义请求的接口
url='http://testingedu.com.cn:8000/index.php'
#定义请求的参数
data={
    'username':'13800138006',
    'password': '123456',
   ' verify_code':'nkpv'
}
#发送请求
re=requests.post(url=url,data=data)
#查看响应数据
print(re.text)

其他请求类型:

requests.get()     #发送get请求
requests.post()    #发送post请求
requests.delete()  #发送delete请求
requests.put()     #发送put请求
requests.request() #最核心的方法

2.2请求参数的传递

params 格式参数:

常用于get请求,传递字符串参数,使用params

#常用于get请求,通过params关键字进行传参
import requests
url='http://testingedu.com.cn:8000/index.php'
data={
    'username':'13800138006',
    'password': '123456',
   ' verify_code':'nkpv'
}
re=requests.get(url=url,params=data)
print(re.text)

form-data(表单)格式参数:

请求参数类型:content-type: application/x-www-form-urlencoded*

传递表单参数,使用data传递

#通过data关键字进行传参
import requests
url='http://testingedu.com.cn:8000/index.php'
data={
    'username':'13800138006',
    'password': '123456',
   ' verify_code':'nkpv'
}
re=requests.post(url=url,data=data)
print(re.text)

json格式参数:

请求参数类型:Content-Type:Application/json

传递json参数,使用json传递

#通过json关键字进行传参
import requests
url='http://testingedu.com.cn:8000/index.php'
data={
    'username':'13800138006',
    'password': '123456',
   ' verify_code':'nkpv'
}
re=requests.post(url=url,json=data)
print(re.text)

文件格式参数:

请求参数类型:content-type:application/form-data

文件参数使用files传递:

{“参数名”:(“文件路径”,open以rb模式打开文件)}

import requests
url = 'http://192.168.200.10:9751/light/excelData'
#注意文件的名称和参数
data = {
    'file': open(r'E:\网页下载\信号灯.xlsx','rb')  #使用rb二进制方式打开文件
}
re=requests.post(url=url,files=data) #使用files传递文件
print(re.json())

1.Python+requests库的基本入门_第1张图片

各参数直接的区别:

get请求通过params传递参数。

post请求通过json或者data传参。data和json两者之间的区别:

data:

数据报文:dict字典类型,那么默认情况下请求头:application/x-www-form-urlencoded,表示以form表单的方式传参,格式:a=1&b=2&c=3

数据报文:str类型,那么默认情况下:text/plain(如果是字典格式需要转换成字符串格式传参)

json:

数据报文:不管是dict还是str类型,默认都是application/json,格式{"a":1,"b":2,"c":3}

json.dumps(data) 序列化 把字典格式的数据转换成str

json.loads(data) 反序列化 把str格式转换成字典格式

总结:

post传参时,data只能传简单的只有键值对的dict或者是str格式。json一般只能传dict格式(简单和嵌套都可以)

2.3请求头的定义

添加请求头参数时,需传递一个字典类型的数据给headers参数

headers={"Content-Type":"application/json"}
response = requests.get(url, headers=headers)

2.4请求的响应内容

rep = requests.request()
​
#返回字符串的数据
print(rep.text)
#返回字节格式的数据
print(rep.content)
#返回字典格式的数据
print(rep.json())
#状态码
print(rep.status_code)
#返回状态信息
print(rep.reason)
#返回cookie信息
print(rep.cookies)
#返回编码格式
print(rep.encoding)
#返回响应头
print(rep.headers)

2.5请求之间的鉴权

cookie:

获取响应数据中的cookie,下次请求时通过cookie传参

import requests
url='http://testingedu.com.cn:8000/index.php'
data={
    'username':'13800138006',
    'password': '123456',
   ' verify_code':'nkpv'
}
re=requests.post(url=url,json=data)
#获取登录成功后返回的cookie信息
cookies=re.cookies
​
order_url = r'http://testingedu.com.cn:8000/index.php?m=Home&c=Cart&a=header_cart_list'
#传入cookie
response = requests.get(url=order_url, cookies= cookies)
print(response.text)

session(会话):

在多个请求之间存储数据并自动添加数据,如cookie

import requests
#实例化
session=requests.Session()
url='http://testingedu.com.cn:8000/index.php'
data={
    'username':'13800138006',
    'password': '123456',
   ' verify_code':'nkpv'
}
#session发起请求
re=session.post(url=url,json=data)
cookies=re.cookies
​
order_url = r'http://testingedu.com.cn:8000/index.php?m=Home&c=Cart&a=header_cart_list'
#不需要手动传递cookie
response = session.get(url=order_url)
print(response.text)

你可能感兴趣的:(#,Python接口自动化,python)