接口自动化2------requests库

在python中,能构造HTTP请求的库有很多,比如:
内置库:httplib,urllib2,http
第三方库:urllib3,requests,pyCurl

request库帮助文档:https://requests.readthedocs.io/zh_CN/latest/

get(url,params=,headers=,cookies=)
post(url,data/json=,headers,cookies=)
delete(url,headers=,cookies=,)
put(url,data=,headers,cookies=)
在这里插入图片描述
怎么构造请求体数据(HTTP协议第四部分的内容)
口诀1:params参数,如果传入的是字典,自动编码为表单。—一般get请求需要
口诀2:data参数,如果传入的是字典,自动编码为表单。
口诀3:data参数,如果传入的是字符串,按原格式直接发布出去。
口诀4:json参数,如果传入的是字典,自动编码为json字符串。
口诀5:json参数,如果传入的是字符串,按原格式基础上添加双引号发布出去。
口诀6:headers参数,传递的是字典格式

data=json.dumps(dictPayload) 等同于 json=dictPayload

requests 库响应消息体四种格式:

四种返回格式 说明 用处
r.text:文本响应内容 返回字符串类型 获取网页html时用
r.content:字节响应内容 返回字节类型 下载图片或文件时用
r.json():Json解码响应内容 返回字典格式 明确服务器返回json数据才能用
r.raw:原始响应内容 返回原始格式

有些同学(大约2%)可能requests发出的请求,fiddler抓不到,可以为请求方法添加proxies参数,它的值是一个字典。里面的value是fiddler代理和端口。
proxies = {
‘http’: ‘http://127.0.0.1:8888’,
‘https’: ‘http://127.0.0.1:8888’,
}
requests.你的请求方法(‘你的请求’,data=你的payload, proxies=proxies)

import requests

#1--访问百度首页
r1 = requests.get('http://www.baidu.com')
r1.encoding = 'utf-8'  # 防止乱码
#print(r.text)

#2--教管系统(列出课程)
payload = {
    'action':'list_course',
    'pagenum':'1',
    'pagesize':20
}
#r2 = requests.get('http://localhost:80/api/mgr/sq_mgr/?action=list_course&pagenum=1&pagesize=20 HTTP/1.1')
r2 = requests.get('http://localhost:80/api/mgr/sq_mgr/',params=payload)
#print(r2.text)

#3--教管系统(新增课程)
dict1 = {
    'Content-Type':'application/x-www-form-urlencoded'
}
payload1 = {
    'action':'add_course',
    'data':'{ "name":"初中化学","desc":"初中化学课程","display_idx":"4"}'
}
r3 = requests.post('http://localhost:80/api/mgr/sq_mgr/ '
                   ,headers = dict1,data = payload1
                   )
print(r3.text)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值