python request
python request
a. 客户端向服务端发送多层字典的值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
obj = { 'data' :{ "k1" : "v1" , "k2" : "v2" }, 'status' : True } #json发送 requests.post( "http://www.baidu.com" ,json = obj) #发送数据内部默认处理(会在内部把字典obj json.dumps序列成字符串,发送给服务端) body: json.dumps(obj) headers = { 'content-type' : 'application/json' } #默认加入 #只有设置如下请求头request.post才能接受,但不能接受多层字典的数据 headers = { 'content-type' : "application/x-www-form-urlencoded" } #接受上面格式发送的数据 if request.method = = 'POST' : obj = json.loads(request.body.decode( 'utf-8' )) |
b. request.post 和request.body
1
2
3
4
5
6
|
#接受 requests.boby - 请求体原生的值 requests.POST - 根据特殊的请求头从requests.boby获取数据,不能接受多层字典的数据 |
c. 三者相等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#方式一: requests.post( "http://www.baidu.com" ,json = obj) #方式二: requests.post( url = "http://www.baidu.com" , headers = { 'content-type' : 'application/json' }, data = json.dumps(obj) ) #方式三(): requests.post( url = "http://www.baidu.com" , headers = { 'content-type' : 'application/json' }, data = bytes(json.dumps(obj),encoding = "utf-8" ) ) |