Python异步IO http请求模块

Python异步IO http请求模块,python,python-asyncio,http-redirect,aiohttp,Python,Python Asyncio,Http Redirect,Aiohttp,以下是我提出请求的方式: from aiohttp import request def make_request(self, request_payload, request_headers, request_method, request_url_path): url = self.config["HOST_URL"] + "/" + request_url_path response = yield from request(request_

以下是我提出请求的方式:

    from aiohttp import request
    def make_request(self, request_payload, request_headers, request_method, request_url_path):
        url = self.config["HOST_URL"] + "/" + request_url_path
        response = yield from request(request_method, url=url, params=request_payload, headers=request_headers, allow_redirects=False)
        return response
在请求成功的情况下,此处的预期响应是
响应状态302
和响应中的
位置
标头,其中将包含需要进行重定向的url

问题是,我得到的响应状态是200,这是来自最终url的响应。我怎样才能实现我想要的


“allow_redirects=False”应该是有效的,但事实并非如此。我不知道如何才能让它按我的需要工作。

请求支持一个可选的allow_redirects参数,您可以将其设置为False。

注意:如果使用旧的基于生成器的语法,则应使用decorator
asyncio.coroutine
。如果您使用的是Python 3.5+版本,请使用

请提供可复制的最小代码段(包括url、其他参数、Python版本),因为我不了解您所说的行为:

import asyncio
from aiohttp import request


@asyncio.coroutine
def make_request():
    url = 'http://httpbin.org/redirect/1'
    response = yield from request(method='GET', url=url, allow_redirects=False)
    print(response)


loop = asyncio.get_event_loop()
loop.run_until_complete(make_request())
输出:

<ClientResponse(http://httpbin.org/redirect/1) [302 FOUND]>
<CIMultiDictProxy('Connection': 'keep-alive', 'Server': 'meinheld/0.6.1', 'Date': 'Wed, 15 Nov 2017 16:28:55 GMT', 'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '215', 'Location': '/get', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true', 'X-Powered-By': 'Flask', 'X-Processed-Time': '0.000524044036865', 'Via': '1.1 vegur')>


允许重定向时使用下划线,而不是连字符。先生,请通读整篇文章。在代码中,我使用了正确的标志。