requests库之发送post请求

一、前言

前面我们说了requests库发送get请求,在实际生成中,很多请求是post方法请求,那么requests库如何发送post请求呢?

其实,发送post请求和发送get请求十分相似,下面我们来具体看看吧。

 

二、发送post请求

和发送get请求一样,发送post请求也需要导入requests库,如下:

import requests

要发送post请求,需要调用post方法,并传入参数和请求头(如需要的话),如下:

import requests

request_url = "https://xxx/rsn/user/login"

headers= {
    "Host": "xxx",
    "Content-Type": "application/json",
    "Origin": "https://xxx",
    "Referer": "https://xxx/iblfront/rs-histology/"
}

request_data = {
    "type": 0,
    "userName": "xxxxxxxxx",
    "password": "xxxxxxxxx"
}

response = requests.post(request_url, headers=headers, json=request_data)

但post和get请求的请求有区别:

get:params

post:data或json

是使用data还是json,需要根据接口要求,若Content-Type请求头字段为:application/json,那么我们就使用json,如果是multipart/form-data或其他格式,我们

就统一使用data

 

对于返回值是json格式时(无论是什么类型请求,以下处理方式都通用),可以通过Response对象的json()方法将返回值转换为字典格式。

import requests

request_url = "https://xxx/rsn/user/login"

headers= {
    "Host": "xxx",
    "Content-Type": "application/json",
    "Origin": "https://xxx",
    "Referer": "https://xxx/iblfront/rs-histology/"
}

request_data = {
    "type": 0,
    "userName": "xxxxxxxxx",
    "password": "xxxxxxxxx"
}

response = requests.post(request_url, headers=headers, json=request_data)

print(response.json())
print(type(response.json()))
print(response.json()["data"]["uid"])

执行结果如下:

 

 

对于获取响应或请求的其他信息,post和get方法一致。

 

posted @ 2022-05-30 13:47  Target_L  阅读(676)  评论(0)    收藏  举报