aiohttp错误无效的常量字符串

时间:2017-04-09 11:26:49

标签: python aiohttp

#!/usr/bin/env python3.5

import asyncio
import aiohttp

url = "http://eniig.dk"

async def main():
    try:
        async with aiohttp.ClientSession() as session:
            async with session.get(url) as response:
                try:
                    body = await response.read()
                    print(response.method)
                    print(body)
                except UnicodeDecodeError as msg:
                    print(msg)
                    print(body)
    except Exception as msg:
        print(msg)


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()

此代码出错:

400, message='400, message='invalid constant string''

如果URL指定“https”,则一切正常。但如果事先不知道协议,如何避免错误?

有哪些替代方案可以建议aiohttp?

UPD: 我已经很久没有来过这里了。忘了说代码是在Debian 8 stable下运行的。通过TCPConnector()和request()

替换ClientSession()和get()方法解决了这个问题。

1 个答案:

答案 0 :(得分:2)

它看起来像一个非常好的代码。 使用此版本的aiohttp

为我工作
  • 2.0.7
  • 2.0.6
  • 2.0.5
  • 2.0.4
  • 2.0.3
  • 2.0.2
  • 2.0.1
  • 2.0.0