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

相关文章

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面