轻松上手 Python HTTP 请求库:treq

文摘   2024-12-24 16:11   辽宁  


今天咱们聊聊 treq,一个用起来特别顺手的 Python HTTP 客户端库。你可能已经听说过 Twisted,没错,treq 就是基于 Twisted 的一个轻量级 HTTP 工具,用它来发请求、处理响应那是相当方便。

安装 treq

要开始用 treq,第一步当然是安装它。我们打开终端,运行下面这行命令:

pip install treq

简单吧?装好之后,咱就可以开始玩耍了。

发送 GET 请求

你肯定想先知道怎么发个 GET 请求吧?来看个例子:

from twisted.internet import reactor
from twisted.internet.defer import ensureDeferred
import treq

defgot_response(response):
print(f"Response code: {response.code}")
return response.text()

defhandle_content(content):
print(f"Page content: {content[:100]}...")

defhandle_error(failure):
print(f"Request failed: {failure.getErrorMessage()}")

url ="https://jsonplaceholder.typicode.com/todos/1"

# 用 treq 发送 GET 请求
= treq.get(url)

# 添加回调函数处理响应
d.addCallback(got_response)
d.addCallback(handle_content)

# 添加错误处理
d.addErrback(handle_error)

# 运行 Twisted reactor
reactor.run()

简单总结一下这段代码:首先,我们用 treq.get 发了个 GET 请求,然后通过 addCallback 方法来处理返回的响应,最后如果出错了,我们用 addErrback 来捕获错误。需要注意的是, Twisted 的异步模型需要通过 reactor.run() 来启动事件循环。

发送 POST 请求

除了 GET,咱们也经常要发 POST 请求。来吧,试试这个:

data = {'title': 'foo', 'body': 'bar', 'userId': 1}

= treq.post("https://jsonplaceholder.typicode.com/posts", json=data)

d.addCallback(got_response)  # 继续用之前的回调函数
d.addCallback(handle_content)
d.addErrback(handle_error)

reactor.run()

这里我们用 treq.post 发了个 POST 请求,带了一些 JSON 数据。和 GET 请求类似,我们通过回调来处理响应或者错误。

结语

用 treq 发请求基本就是这么简单。总的来说,它就是让发 HTTP 请求这件事变得轻而易举,特别是和 Twisted 一起用时,配合得相当默契。如果你已经在用 Twisted 了,treq 会是一个非常好的伙伴。当然,不熟悉 Twisted 也不要紧,跟着例子做一遍基本就没问题了。

希望这篇小教程能帮你顺利上手 treq。如果还有什么问题,欢迎随时讨论。就这样,祝你编码愉快!


小栗食养
日拱一卒,每天精进!
 最新文章