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

相关文章

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Python WSGI HTTP服务器Gunicorn使用详解

《PythonWSGIHTTP服务器Gunicorn使用详解》Gunicorn是Python的WSGI服务器,用于部署Flask/Django应用,性能高且稳定,支持多Worker类型与配置,可处... 目录一、什么是 Gunicorn?二、为什么需要Gunicorn?三、安装Gunicorn四、基本使用启