上一篇文章,我们详细介绍了http请求的常用方法以及细节,大家可以点击:https://blog.51cto.com/u_13025170/2961690进行观看,这一篇文章让你对整个http请求有更详细的认识,两篇结合看,掌握自动化和爬虫不再是难事
话不多说,我们直奔主题,上代码
# -*- coding: utf-8 -*- #引入requests库 import requests #设置函数,抿成send_requests def send_requests(): #请求地址 url = 'http://httpbin.org/post' #请求数据,一定是个双引号的字典形式 body = {"key1": "value1", "key2": "value2"} #请求头 header={ #设置连接请求类型为json "Content-Type": "application/json", #token,这里使用的是postman "Postman-Token": "0f7408f7-9869-48ba-9433-871bf4b6f560", #用户请求的代理,建议请求header中要加上,避免服务端接口有反爬虫设置 "User-Agent": "PostmanRuntime/7.28.1"} #使用requests.post发送请求 res = requests.post(url, data=body,headers=header) #返回请求数据格式为json return res.json() #程序的主入口 if __name__ == "__main__": #实例化函数,并赋值给response response = send_requests() #打印结果到屏幕上 print(response)
返回结果:
#返回的请求头 "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", #返回数据的长度 "Content-Length": "36", #连接的数据类型:json "Content-Type": "application/json", #请求的主机地址 "Host": "httpbin.org", #token,这里使用的是postman "Postman-Token": "0f7408f7-9869-48ba-9433-871bf4b6f560", #用户请求的代理,建议请求header中要加上,避免服务端接口有反爬虫设置 "User-Agent": "PostmanRuntime/7.28.1", "X-Amzn-Trace-Id": "Root=1-60dda783-6a28eddc29f6f7941c47b5a4" }, #返回的数据 "json": { "key1": "value1", "key2": "value2"
大家看,其实通过post发送请求很简单
下面再讲讲返回信息的具体内容
大家看,其实有很多的返回值参数,其实我们实际中能用到的并不多,我下边一一列举出来了
response.json():返回信息的格式是json,应为我们请求的时候是json格式,返回的也是一个json,如果返回报错,应该是开发的接口出错了
response.text:如果response.json,可以使用text调试一下,看看具体的返回内容是什么,这里看到的都是字符串了
response.status_code:返回的http状态码,200是成功,404是未找到接口路径,500是服务器错误,等等
response.url:返回请求时的url地址
response.headers:返回服务器给你的响应header
response.cookies:返回服务器给你的cookies,这是一个多么好的获取cookie的方法啊,
response.content:同response.text是一样的
import requests res = requests.post(url="url",data="body",timeout=30,verfiy=False) print(res.json())
url:请求的全路径地址,一定是要完整的路径哦
data:请求的内容,如果是json的格式,最好使用json.dumps,反序列化一下,避免格式错误,如果是其他格式,就都是字符串了
timeout:设置超时时间,这样我们在自动化测试和爬虫的时候,当达到了设置的超时时间,我们的程序就退出不会一直等待了,可以做其他操作了
verfiy:如果请求的接口是https协议,这个参数就很好用了,如果设置该参数为True,那么我们的脚本就是要配置CA证书,建议参数值为False,好用又简单
好了,post的请求详解就这些了,欢迎大家点赞留言,我会给大家解答疑问的