Http请求模块。
1. get请求
无参:result = requests.get(“http://10.10.100.233/web/home”)
有参:result = requests.get(“http://10.10.100.233/web/home”), params={"name": "Lily", "sex":"lady"})
url拼接参数:
params = {"siteOid":3396, "type":1}
params = urllib.parse.quote(json.dumps(params)) # URL编码,需要import urllib
full_url = "httpL//10.10.100.233/web/sec/safe?data=" + params
res = requests.session().get(full_url) # 发送get请求,把参数写在地址后面的写法
2. post请求
无参:result = requests.post(“http://10.10.100.233/web/home”)
url传递参数1:result = requests.post(“http://10.10.100.233/web/home”), params={"name": "Lily", "sex":"lady"})
url传递参数2:
params = {"siteOid":3396, "type":1}
params = urllib.parse.quote(json.dumps(params)) # URL编码,需要import urllib
full_url = "httpL//10.10.100.233/web/sec/safe"
res = requests.session().post(full_url, params) # 发送post请求
post发送json请求:result = requests.post(“http://10.10.100.233/web/home”), json.dumps({"name": "Lily", "sex":"lady"}))
post多部分编码文件:result = requests.post(“http://10.10.100.233/web/home”, files = {"file": open("E:/work/report.xls", "rn")})
3. session对象
能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies。
4. 响应结果
r.text #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.content #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
r.status_code #响应状态码
#*特殊方法*#
r.json() #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
5. 示例:
import unittest
import requests
class Init(unittest.TestCase):
s = requests.session() # 创建session会话对象,成员变量
host = 'http://10.10.100.233'
def login(self):
print("start.....")
u = self.host+"/web/sec/login"
p = {
'name': '155****8002',
'password': '111111',
'loginModel': 150 # 150表示首次登陆
}
self.s.post(u, p) # 由session对象发起post请求