如何使用 Python 中的`requests`库发送 HTTP 请求?

简介: 【2月更文挑战第21天】【2月更文挑战第66篇】如何使用 Python 中的`requests`库发送 HTTP 请求?

Python 的 requests 库是一个强大的 HTTP 客户端库,用于发送各种类型的 HTTP 请求。以下是使用 requests 库发送 HTTP 请求的基本步骤:

首先,你需要安装 requests 库。如果你还没有安装,可以使用 pip 来安装:

bash
pip install requests
安装完成后,你可以使用以下代码来发送 HTTP 请求:

发送 GET 请求:

python
import requests

url = 'https://api.example.com/data'
response = requests.get(url)

检查请求是否成功

if response.status_code == 200:

# 如果成功,打印返回的内容  
print(response.text)  

else:

# 如果失败,打印错误信息  
print('Failed to retrieve data')

发送 POST 请求:

python
import requests
import json

url = 'https://api.example.com/data'
data = {'key1': 'value1', 'key2': 'value2'}
headers = {'Content-Type': 'application/json'}

response = requests.post(url, data=json.dumps(data), headers=headers)

检查请求是否成功

if response.status_code == 200:

# 如果成功,打印返回的内容  
print(response.text)  

else:

# 如果失败,打印错误信息  
print('Failed to post data')

在上面的 POST 请求示例中,我们发送了一个 JSON 格式的数据。json.dumps(data) 将 Python 字典转换为 JSON 格式的字符串。

发送 PUT 和 DELETE 请求:

PUT 和 DELETE 请求的发送方式与 GET 和 POST 非常相似,只是需要调用不同的方法:

python

发送 PUT 请求

response = requests.put(url, data=json.dumps(data), headers=headers)

发送 DELETE 请求

response = requests.delete(url)
处理响应:

response 对象包含了很多有用的信息,如状态码、响应头、响应内容等。你可以通过 response.status_code 获取状态码,通过 response.headers 获取响应头,通过 response.text 或 response.json() 获取响应内容(如果内容是 JSON 格式的话)。

注意:对于非 200 的状态码,你可能需要处理错误或异常。虽然 requests 不会因非 200 的状态码而抛出异常,但最好还是检查状态码并根据需要处理错误。

相关文章
|
9天前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
12天前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
|
16天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
51 4
|
15天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
线程的状态有:new、runnable、running、waiting、timed_waiting、blocked、dead 当执行new Thread(Runnabler)后,新创建出来的线程处于new状态,这种线程不可能执行 当执行thread.start()后,线程处于runnable状态,这种情况下只要得到CPU,就可以开始执行了。
733 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Found lingering reference异常 ERROR: Found lingering reference file hdfs://jiujiang1:9000/hbase/month_hotstatic/...
725 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
java链接MongoDB处理大量数据时经常碰到cursor not found 的异常,其实是超时所致 Exception in thread "main" com.
831 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
负载均衡: LVS(Layer 4), HAProxy(Layer 4、 7),Nginx(Layer 7) 虚拟化: LXC、KVM、Xen HA:Keepalived、Heartbeat 分布式缓存...
760 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
zookeeper watch的定义如下:watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher。
936 0
下一篇
无影云桌面