【发布时间】:2017-03-16 00:36:10
【问题描述】:
我需要编写一个适用于 2.7 和 3.x 的包。该包需要具有以异步方式发出发布请求的方法。这可能吗?我尝试使用 request-futures,但是当我尝试发出多个请求时出现错误。我也尝试过 grequests,但我什至无法让它发出请求。
看起来像这样:
my_package.py
def _make_request(payload):
requests.post(
SERVICE_URL,
data=json.dumps(payload),
)
def do_thing_a():
_make_request(some_payload)
def do_thing_b():
_make_request(some_other_payload)
code_that_uses_my_package.py
do_thing_a()
do_thing_b()
如果我同步使用请求,这可以正常工作。如果我使用 requests-futures,只需添加该行
session = FuturesSession() 到每个方法并将 requests.post 更改为 session.post,我收到此错误。
TypeError: 'NoneType' object is not callable
<async at 0x3f657f0> failed with TypeError
如果我只进行一次异步调用,它确实可以工作。 如果我尝试 grequests 并使用 grequests.post + greqeuests.send,什么也不会发生。
我做错了吗?是否有更好的库可用于执行此操作?
【问题讨论】:
-
需要Twisted 之类的帮助吗?
标签: python python-2.7 python-3.x python-requests