使用Python的requests库来发送HTTP请求

使用 Python 的 requests 庂来发送 HTTP 请求非常简单,requests 是一个流行的第三方库,支持各种类型的 HTTP 请求,并且它的 API 设计非常简洁易用。

在这里插入图片描述

1. 安装 requests

如果你还没有安装 requests 库,可以通过以下命令安装:

pip install requests

2. 发送常见的 HTTP 请求

(1) 发送 GET 请求

GET 请求用于从服务器获取数据。你可以直接使用 requests.get() 方法发送一个 GET 请求。

import requests

# 发送 GET 请求
response = requests.get("https://www.example.com")

# 打印响应内容
print(response.status_code)  # 状态码
print(response.text)         # 响应体(网页内容)
(2) 发送 POST 请求

POST 请求用于向服务器发送数据。你可以使用 requests.post() 方法发送一个 POST 请求,并在请求中传递数据。

import requests

# 发送 POST 请求并传递数据
data = {"username": "user1", "password": "password123"}
response = requests.post("https://www.example.com/login", data=data)

# 打印响应内容
print(response.status_code)
print(response.text)
(3) 发送带查询参数的 GET 请求

你可以通过传递字典的方式在 GET 请求中添加查询参数。

import requests

# 添加查询参数
params = {"q": "Python", "page": 1}
response = requests.get("https://www.example.com/search", params=params)

# 打印响应内容
print(response.status_code)
print(response.text)
(4) 发送带 JSON 数据的 POST 请求

如果你想发送 JSON 格式的数据,你可以使用 json 参数。

import requests

# 发送 JSON 数据
data = {"username": "user1", "password": "password123"}
response = requests.post("https://www.example.com/login", json=data)

# 打印响应内容
print(response.status_code)
print(response.text)
(5) 添加 HTTP 请求头

你可以通过 headers 参数向请求中添加自定义的 HTTP 头。

import requests

# 设置请求头
headers = {
    "User-Agent": "Mozilla/5.0",
    "Accept": "application/json"
}
response = requests.get("https://www.example.com", headers=headers)

# 打印响应内容
print(response.status_code)
print(response.text)
(6) 处理响应

响应对象 (response) 包含了许多有用的信息,比如状态码、响应内容、响应头等。

import requests

response = requests.get("https://www.example.com")

# 获取状态码
print(response.status_code)

# 获取文本响应内容
print(response.text)

# 获取 JSON 响应内容(如果服务器返回的是 JSON 数据)
try:
    json_data = response.json()
    print(json_data)
except ValueError:
    print("响应不是有效的 JSON")
(7) 超时设置

你可以设置请求的超时时间,防止请求一直挂起。

import requests

try:
    # 设置请求超时为 5 秒
    response = requests.get("https://www.example.com", timeout=5)
    print(response.text)
except requests.Timeout:
    print("请求超时")
(8) 文件上传

你可以使用 files 参数发送文件。

import requests

# 上传文件
files = {"file": open("example.txt", "rb")}
response = requests.post("https://www.example.com/upload", files=files)

# 打印响应内容
print(response.status_code)
print(response.text)
(9) 处理重定向

requests 默认会自动处理 HTTP 重定向。如果你想禁用这个自动处理,可以使用 allow_redirects 参数。

import requests

response = requests.get("https://www.example.com", allow_redirects=False)
print(response.status_code)  # 如果是 3xx,会显示重定向状态码

3. 异常处理

你可以通过 try...except 来捕获网络请求中的异常,例如网络连接错误或请求超时等。

import requests

try:
    response = requests.get("https://www.example.com")
    response.raise_for_status()  # 检查是否返回了 4xx 或 5xx 错误
except requests.exceptions.RequestException as e:
    print(f"请求错误: {e}")

总结

requests 是一个非常强大且易于使用的库,用于发送 HTTP 请求。你可以使用它来发送各种 HTTP 请求(GET、POST、PUT、DELETE 等),并处理响应。通过设置请求头、添加查询参数、上传文件等方式,你可以实现很多不同类型的网络请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值