首页 > 其他分享 >为HTTP而生的requests库,纵横江湖难逢敌手

为HTTP而生的requests库,纵横江湖难逢敌手

时间:2024-03-06 20:36:00浏览次数:22  
标签:难逢敌手 HTTP 请求 发送 print requests response

既然Python是一门全球流行的语言,那么对于网络通信的HTTP的支持肯定也是非常的优秀的。Python中原生的urllib模块也有对HTTP的支持,虽然也可以用来发送 HTTP 请求,但使用起来相对繁琐,并且 API 设计不够直观。

requests 库的出现填补了 Python 在 HTTP 请求方面的不足,简化了开发者的工作流程,让他们可以更加专注于业务逻辑的实现,而不用过多关注底层的 HTTP 请求细节。同时,requests 的清晰文档和社区活跃也使得这个库成为 Python 社区中最受欢迎的 HTTP 请求库之一。

毫不夸张的说,requests就是为HTTP而生的,在Python领域难逢敌手。

requests是什么

requests 是一个非常流行的 HTTP 库,它提供了简洁、易用的 API 接口,用于发送各种类型的 HTTP 请求并处理响应。requests 库可以帮助开发者使用 Python 进行网络通信,与 Web 服务进行交互,获取数据并处理返回的响应内容。

以下是听说的一些他的强大功能:

  1. 支持多种 HTTP 请求方法:requests 库支持常见的 HTTP 请求方法,如 GET、POST、PUT、DELETE 等,开发者可以轻松地发送不同类型的请求。
  2. 简洁的 API 接口:requests 的设计理念是“用户友好、易用性优先”,提供了简洁直观的接口,让开发者可以快速上手,并且代码易读易维护。
  3. 请求和响应自动处理:requests 可以自动处理请求和响应的细节,如自动添加请求头、处理重定向、管理 cookie 等,简化了开发过程。
  4. 文件上传和下载支持:requests 支持文件的上传和下载操作,可以方便地处理文件相关的 HTTP 请求。
  5. 会话管理:requests 提供了会话对象,可以保持持久性会话,跨请求共享 cookies,而不用重复设置。
  6. SSL 验证:requests 支持 SSL 验证,确保请求的安全性。
    当然,这个功能听着实在太抽象,所以需要你深入去了解他。

而我用一句话概况requests就是:requests一个非常优秀、受欢迎的HTTP库。

requests的官网网站以及源码地址:

官网网站:requests.readthedocs.io
源码地址:github.com/psf/requests

安装requests

要安装requests包,可以使用Python的包管理器(如pip)在命令行中运行以下命令:

pip install requests

使用requests

安装完成后,在 Python 脚本中引入 requests 模块:

import requests

GET方法

接下来就可以使用 requests 发送 HTTP 请求了。以下是一个简单的示例,演示如何使用 requests 发送一个 GET 请求。

# 导入 requests 库
import requests

# 定义请求的 URL
url = "https://jsonplaceholder.typicode.com/posts/1"

# 发送 GET 请求
response = requests.get(url)

# 检查响应状态码
if response.status_code == 200:
    # 输出一些请求信息
    print(f"请求 URL: {url}")
    print(f"请求状态码: {response.status_code}")
    print("响应头信息:")
    for key, value in response.headers.items():
        print(f"  {key}: {value}")
    print("")

    # 输出响应内容
    print("响应内容:")
    print(response.text)  # 使用 text 属性获取响应内容(字符串形式)

    # 如果响应是 JSON 格式,也可以直接获取为 JSON 数据
    json_data = response.json()
    print("响应 JSON 数据:")
    print(json_data)
else:
    print(f"请求失败,状态码: {response.status_code}")

以上代码中,我们首先导入 requests 模块,然后使用 requests.get() 方法发送一个 GET 请求,指定了目标 URL。请求发送完毕后,可以通过 response 对象获取到响应内容,使用 response.text 可以获得响应的文本内容。当然URL地址可以替换成任意你想要的地址,我上面只是弄个实例。

除了 GET 请求,requests 还支持其他 HTTP 请求方法,如 POST、PUT、DELETE 等。

POST方法

# 导入 requests 库
import requests

# 定义请求的 URL
url = 'https://jsonplaceholder.typicode.com/posts'

# 定义要发送的 JSON 数据
data = {
    'name': 'alittle',
    'body-length': 180,
    'company': 'home'
}

# 发送 POST 请求
response = requests.post(url, json=data)

# 检查响应状态码
if response.status_code == 201:  # 201 表示创建成功
    print('创建成功,返回数据如下:')
    print(response.json())  # 输出响应内容
else:
    print('请求失败,状态码:', response.status_code)

大家可以看到,在上面的例子中,我们使用 requests.post() 方法发送一个 POST 请求,同时传递了一个 data 参数,用于设置 POST 请求的数据。

除了 GET 和 POST 请求,requests 还支持其他功能,如设置请求头、处理响应、上传文件、代理设置等。具体使用方法可以参考 requests 官方文档,里面包含了详细的 API 参考和示例。
以上是一些非常简单的 requests 库的使用例子,主要是为了让大家对这个库的使用有一个大概的印象。

requests的相关函数

以下我总结的一些比较常用的一些requests库的方法。

函数名 解释
requests.get() 发送GET请求
requests.post() 发送POST请求
requests.put() 发送PUT请求
requests.delete() 发送DELETE请求
requests.head() 发送HEAD请求
requests.options() 发送OPTIONS请求
requests.patch() 发送PATCH请求
requests.request() 发送自定义请求方法
requests.Session() 创建一个持久性会话对象,可以跨请求保持某些参数
requests.cookies Response 对象的 cookies 属性,用于访问响应的 cookies
requests.getproxies() 获取当前系统的代理信息
requests.adapters 适配器,用于发送请求和接收响应

更多精彩内容,请关注同名公众:一点sir(alittle-sir)

标签:难逢敌手,HTTP,请求,发送,print,requests,response
From: https://www.cnblogs.com/kiwiblog/p/18057465

相关文章

  • httpd使用systemctl启动超时解决过程
    现象:systemctlstarthttpd启动超时,提示信息如下:Jobforhttpd.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatushttpd.service"and"journalctl-xe"fordetails.systemctlstatushttpd信息如下:httpd.service......
  • RestTemplate+OkHttp3整合(一)
    代码(HTTP、HTTPS)一、POM<!-okhttp-><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.10.0</version></dependency><!-非必要,这里解析流数据时用了一下->&l......
  • python-Grequests,一个好用的 requests库的异步版本!
    Grequests是什么?grequests是一个Python库,它是requests库的异步版本。它允许你同时发送多个HTTP请求,而不必等待每个请求依次响应。可以在等待服务器响应的同时执行其他任务,从而节省时间并提高效率。安装Grequestspipinstallgrequests使用示例一:批量获取网页假如有一个......
  • 配置 HTTPERR 错误日志记录,不断增长会沾满C盘导致服务器停机
    配置HTTPAPI错误日志记录HTTP\Parameters键下的三个注册表值控制HTTPAPI错误日志记录。这些密钥位于注册表项中: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters。 备注在Windows操作系统的更高版本中,配置值的位置和形式可能会更改。......
  • 变量$host、$http_host、$proxy_host区别
    //如果想让Host是crmtest.aty.sohuno.com,则进行如下设置:proxy_set_headerHostcrmtest.aty.sohuno.com;//如果不想改变请求头“Host”的值,可以这样来设置:proxy_set_headerHost$http_host;//但是,如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头......
  • 安卓使用HttpCanary进行抓包
    IOS抓包软件Stream的安装与使用使用「Stream」进行IOS抓包同样的代码,有时候在安卓端会出现不同的问题,所以还需要进行安卓的抓包另外安卓非Root用户的抓包比较麻烦,需要安装指定版本的HttpCannary(小黄鸟)HttpCanary介绍1、观看抓包软件的結果还能抓取音频以及视频。2、可以自动式......
  • JMeter分布式安装和HTTP
    JMeter分布式安装分布式JMeter环境主要由一个JMeter控制器(Control)和多个JMeter代理(Agent)组成。被测试的计算机JMeter控制器为控制计算机,JMeter代理为工作计算机。现在每台计算机上安装JMeter。在每太运行JMeter代理的计算机中打开%JMETER_HOME%\bin\jmeter.properties文件。修改se......
  • 利用python的http.server定制自己的页面和响应
    pythonhttp.server简介pythonhttp.server是一个简单的基础的httpserver,默认查找网站根目录的index.html文件,如果没有index.html文件,则放回网站根目录文件视图这里我们想对http.server进行修改,实现我们特定的需求,如果只变化html确实能展现不能的静态页面,但是没有办法进行交互,如......
  • [转帖]HTTP 请求头的 Referrer-Policy 到底是什么?
    https://juejin.cn/post/7005209278592073758  当我们打开Chrome的网络面板,查阅它的任意一个请求,可以看到,请求中有一个General选项。除了第四个,前三个我们都很熟悉。今天我们就来介绍一下第四个到底是什么。ReferrerPolicys 是HTTP的一个请求头,通常结合着 R......
  • httpsok-v1.8.0 SSL证书自动续签就应该这么简单
    ......