第二章:Requests 入门——掌握 HTTP 请求的基本用法

举报
yd_220371319 发表于 2026/09/04 22:38:03 2026/09/04
【摘要】 上一章我们了解了 Requests 的定位。这一章正式开始使用它。1. GET 请求最基本的 GET:import requestsresponse = requests.get( "https://example.com")print(response.status_code)print(response.text)其中:response.status_code表示 HTTP 状态码...


上一章我们了解了 Requests 的定位。

这一章正式开始使用它。

1. GET 请求

最基本的 GET:


import requests

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

print(response.status_code)
print(response.text)

其中:


response.status_code

表示 HTTP 状态码。

例如:


200

通常意味着请求成功。


2. 添加 Query 参数

实际 API 通常需要参数。

例如:


https://example.com/search?q=python&page=1

Requests 可以直接使用 params


params = {
    "q": "python",
    "page": 1
}

response = requests.get(
    "https://example.com/search",
    params=params
)

print(response.url)

Requests 会自动将参数编码到 URL 中。


3. POST 请求

POST 请求:


response = requests.post(
    "https://example.com/api"
)

提交表单:


data = {
    "username": "admin",
    "password": "123456"
}

response = requests.post(
    "https://example.com/login",
    data=data
)

如果 API 使用 JSON:


response = requests.post(
    "https://example.com/api",
    json={
        "username": "admin"
    }
)

这里推荐优先使用 json=,因为 Requests 会帮助我们完成 JSON 序列化以及相关请求头处理。


4. 自定义请求头

API 开发中经常需要 Authorization:


headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "User-Agent": "MyApp/1.0"
}

response = requests.get(
    "https://example.com/api",
    headers=headers
)

也可以设置 Content-Type:


headers = {
    "Content-Type": "application/json"
}


5. 获取 JSON

如果服务器返回 JSON:


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

data = response.json()

print(data)

例如服务器返回:


{
    "name": "Alice",
    "age": 20
}

那么:


print(data["name"])

即可得到:


Alice


6. 超时设置

实际项目中,一个非常重要的参数是:


timeout

例如:


response = requests.get(
    "https://example.com",
    timeout=10
)

这意味着请求不能无限等待。

生产环境中不建议完全省略 timeout

否则服务器异常、网络故障或者连接一直没有响应时,程序可能长期阻塞。


7. HTTP 异常处理

可以通过:


response.raise_for_status()

检查 HTTP 状态。

例如:


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

response.raise_for_status()

如果服务器返回 4xx 或 5xx,Requests 会抛出异常。

结合异常处理:


try:
    response = requests.get(
        "https://example.com",
        timeout=10
    )

    response.raise_for_status()

except requests.RequestException as e:
    print("请求失败:", e)

这就是一个更加可靠的基本 HTTP 客户端。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。