requests进行http请求D21

2024-03-21 21:28
文章标签 进行 http 请求 requests d21

本文主要是介绍requests进行http请求D21,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1)requests介绍

"""导入requests

客户端:发送请求的一方"""

import requests

# # 1)发送GET请求,需要传递参数,URL

# url = "http://www.baidu.com"

# res = requests.get(url)

# # 响应对象

# print(res)

# # 获取响应状态码

# print(res.status_code)

# # 获取返回的数据,获取文本

# print(res.text)

# # HTML页面

# # 获取内容

# print(res.content)

# # 返回的是字典,如果接口返回的不是json格式 res.json()报错

# # print(res.json())

"""发送参数的方式:

#URL:query string:查询字符串。GET基本用query string

#body:form-data/json

#headers:"""

                            

# 2)发送post请求

url = "https://openapiv5.ketangpai.com//UserApi/login"

data = {"email": "13370938296", "password": "wu1995", "remember": "0", "code": "", "mobile": "", "type": "login",

"reqtimestamp": 1653535421948}

headers = {"Content-Type": "application/json"}

# data表示form表单格式数据 content-type:form-data

# res = requests.post(url, data=data)

# json数据,json关键字 content-type:application/json

res = requests.post(url, json=data)

print(res.status_code)

print(res.text)

print(res.content)

print(res.json())

res_data = res.json()

# ## 获取token

token = res_data["data"]["token"]

print(token)

"""封装requests请求"""import loggingimport requestsdef visit(url,params=None,json=None,data=None,method="get",**kwargs):"""访问接口,返回res.json()"""res = requests.request(method,url,params=params,json=json,data=data,**kwargs)try:return res.json()except Exception as e:logging.error("返回数据不是json格式{}".format(e))return Noneif __name__ == '__main__':url = "https://openapiv5.ketangpai.com//UserApi/login"data = {"email": "13370938296", "password": "wu1995", "remember": "0", "code": "", "mobile": "", "type": "login","reqtimestamp": 1653535421948}res = visit(url, json=data, method="post")print(res)

作业:

requests 作业根据上课学到的知识,
使用函数,完成自己的 requests 模块封装。
( 选做 )采用类的方式封装 requests

上期答案:

1、 GET 和 POST 区别

- GET 表示从服务器上获取资源,POST 表示向服务器传送数据,创建资源;

- GET 没有请求体,POST 有请求体;

- GET 请求参数(query string查询字符串)放在url中以`?key1=value1&key2=value2`(query string)的形式, POST 不仅可以查询字符串,而且可以放在请求体里面。

2、cookie , session 和 token 区别

cookie和 session

①Cookie可以存储在浏览器或者本地,Session只能存在服务器
②session 能够存储任意的 java 对象,cookie 只能存储 String 类型的对象
③Session比Cookie更具有安全性(Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击)
④Session占用服务器性能,Session过多,增加服务器压力
⑤单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie,Session是没有大小限制和服务器的内存大小有关。

Token 和 Session

1. token 是需要手动传到参数当中的。 session 派发的 session_id 自动存储在浏览器的 cookie api.keyou.site/ 当中,

在下次访问这个网站的时候,会自动带上。

2. session_id 会存到服务器,需要消耗资源, 在浏览器传输过来,要查询,也消耗资源。(IO)

3. token 不需要存储到服务器,服务器会解密,消耗 cpu,

4. token 可以跨平台,跨域。 session

3、三次握手四次挥手是什么?

- 第一次握手:建立连接时,客户端向服务端发送请求报文(SYN),“我想建立连接”

- 第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文(SYN/ACK)“同意建立”

- 第三次握手:客户端收到服务器的确认后,再次向服务器发送确认报文,完成连接(ACK)

- 三次握手主要是为了防止已经失效的请求报文字段发送给服务器,浪费资源。

- 第一次挥手:客户端想分手,发送消息(FIN)给服务器

- 第二次挥手:服务器通知客户端已经接受的挥手请求,返回确认消息(ACK),但还没做好分手准备;

- 第三次挥手:服务器已经做好分手准备,通知客户端(FIN)

- 第四次挥手:客户端发送消息给服务器(ACK),确认分手,服务器关闭连接。

4、你知道的常用状态码有哪些?代表什么意思

- 201 CREATED

- 通过POST或PUT创建资源成功

- 204 NO CONTENT

- 资源修改成功,但是没有返回内容

- 常用于DELETE操作的返回

- Redirection - 3xx:重定向类,为了完成请求,必须进一步执行的动作

- 301 永久重定向

- 302 临时重定向

- 304 Not Modified 使用缓存数据

- Client Error - 4xx:客户端错误类,请求包含语法错误或者请求无法实现

- - 401 UNAUTHORIZED

- - 没有权限访问该资源

- 典型情况:用户没有登录,没有获得对应的access token而直接访问某资源

- 403 FORBIDDEN

- 禁止访问

- 典型情况:虽然用户已登录,但是去更新/删除需要更高权限才能操作的资源

- 405 METHOD NOT ALLOWED

- 方法不允许

- 举例:比如某个资源不允许POST请求,但是你确发起了POST请求

- 5xx:服务器错误

- 502 网关错误

这篇关于requests进行http请求D21的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/833918

相关文章

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi