python --requests模块使用

1.前言

在做接口测试中,我们可以通过Python中的requests库来完成向第三方发送http请求的场景,也可以作为接口测试用例执行的一种方式。基于此我们需要来研究下requests库的功能

中文参考文档:http://2.python-requests.org/zh_CN/latest/

 

2.应用

2.1requests模块安装

 

requests属于第三方库可以通过pip命令进行安装

 


pip install requests

 

 

2.2requests的使用

1.发送请求


import requests
#get请求
response=requests.get('http://www.baidu.com')
print(response)    #输出服务器返回码


#post请求
response_1=requests.get('http://www.baidu.com')
print(response_1)

requests.put(“http://httpbin.org/put”)                                          # PUT请求
requests.delete(“http://httpbin.org/delete”)                                    # DELETE请求

2.参数传递

#验证天气预报的接口  地址:http://apis.juhe.cn/simpleWeather/query

param={'key':'5975e4181b085de266aa0f9b8269e37a','city':'北京'}
#get请求与post请求带参用法一样
response=requests.get('http://apis.juhe.cn/simpleWeather/query',param)
#查看接口文档 已知返回的是json文件
print(response.json())

 


 

3.响应内容

r.encoding                       #获取当前的编码
r.encoding = 'utf-8'             #设置编码
r.text                           #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.content                        #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
​
r.headers                        #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
​
r.status_code                     #响应状态码
r.raw                             #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read()   
r.ok                              # 查看r.ok的布尔值便可以知道是否登陆成功
 #*特殊方法*#
r.json()                         #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.raise_for_status()             #失败请求(非200响应)抛出异常
 

 

4.定制头和cookie信息

 

 

header = {'user-agent': 'my-app/0.0.1''}
cookie = {'key':'value'}
 r = requests.get/post('your url',headers=header,cookies=cookie) 
 


data = {'some': 'data'}
headers = {'content-type': 'application/json',
           'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
 
r = requests.post('https://api.github.com/some/endpoint', data=data, headers=headers)
print(r.text)

 

 

5.上传文件

 

requests.post(url=url, headers=headers, data=params, files=files)
参数说明:

url:请求url地址
headers:请求头
data:发送编码为表单形式的数据
files:上传的文件,如:
files = {'upload_img': ('report.png', open('report.png', 'rb'), 'image/png')}
参数说明:
1.report.png:文件名
2.open('report.png', 'rb'):文件内容
3.image/png:文件类型

 

# coding:utf-8

import requests

# 请求url
url = "http://httpbin.org/post"

# 请求头
headers = {
   "Accept": "*/*",
   "Accept-Encoding": "gzip, deflate",
   "User-Agent": "python/2.9.1",
}

# 查询字符串
params = {'name': 'Jack', 'age': '24'}

# 文件
files = {'upload_img': ('report.xlsx', open('report.xlsx', 'rb'), 'image/png')}
r = requests.post(url=url, data=params, headers=headers, files=files)

print r.status_code  # 获取响应状态码
print r.content  # 获取响应消息

if __name__ == "__main__":
   pass

 

 


posted @ 2020-03-18 15:53  hn_大熊  阅读(278)  评论(2编辑  收藏  举报