【问题标题】:Python asyncio http request modulePython asyncio http 请求模块
【发布时间】:2018-04-28 16:43:41
【问题描述】:

这是我提出请求的方式:

    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

这里请求成功时的预期响应是response status 302 和一个Location 响应头,其中将包含需要进行重定向的url。

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

"allow_redirects=False" 应该有效,但它没有。我不确定如何让它按我的需要工作。

【问题讨论】:

    标签: python python-asyncio http-redirect aiohttp


    【解决方案1】:

    注意:如果你使用旧的基于生成器的语法,你应该使用装饰器asyncio.coroutine。如果您使用的是 Python 3.5+,请使用 new syntax for coroutines

    还请提供可复制的最少代码 sn-p(包括 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')>
    

    【讨论】:

      【解决方案2】:

      Request 支持可选的 allow_redirects 参数,您可以将其设置为 False。

      【讨论】:

      • 它是带下划线的allow_redirects,而不是连字符。
      • 请浏览整个帖子,先生。在代码中,我使用了正确的标志。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 2018-01-05
      相关资源
      最近更新 更多