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如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编