使用以下代码时,我在使用异步
出了什么问题?这是在FreeBSD8上使用Python 3.4.2、aiohttp 0.14.4、requests 2.5.3。
aiohttp
时得到无法连接到主机...:443 ssl:True
的错误。但是当我使用同步requests
时,它成功了。
whitehouse.gov
链接失败,但是google.com
的情况下异步和同步都成功。出了什么问题?这是在FreeBSD8上使用Python 3.4.2、aiohttp 0.14.4、requests 2.5.3。
import asyncio
import aiohttp
import requests
urls = [
'http://www.whitehouse.gov/cea/',
'http://www.whitehouse.gov/omb',
'http://www.google.com']
def test_sync():
for url in urls:
r = requests.get(url)
print(r.status_code)
def test_async():
for url in urls:
try:
r = yield from aiohttp.request('get', url)
except aiohttp.errors.ClientOSError as e:
print('bad eternal link %s: %s' % (url, e))
else:
print(r.status)
if __name__ == '__main__':
print('async')
asyncio.get_event_loop().run_until_complete(test_async())
print('sync')
test_sync()
这是输出的结果:async
bad eternal link http://www.whitehouse.gov/cea: Cannot connect to host www.whitehouse.gov:443 ssl:True
bad eternal link http://www.whitehouse.gov/omb: Cannot connect to host www.whitehouse.gov:443 ssl:True
200
sync
200
200
200