aiohttp 官网教程翻译

从网上看了几篇中文版的教程, 发现不是很全,只翻译了aiohttp客户端的教程,没有把之前的aiohttp 的client 示例翻译进来,直接使用会报错,因此,直接找到官网(查看官网,点击这里),从头开始翻译client的使用教程。本篇主要介绍的是aiohttp客户端的教程

1.相关库的安装

(1)aiohttp 安装

pip install aiohttp

(2)cchartdet 安装

pip install cchardet

(3)aiodns 库安装

pip install aiodns

aiodns库的作用是通关client API来加速dns解析

2.实例演示

(1)client  实例

import aiohttp
import asyncio

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def main():
    async with aiohttp.ClientSession() as session:
        html = await fetch(session, 'http://python.org')
        print(html)

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

3.客户端详细介绍

3.1 使用 get 获取一个网页, 比如http://httpbin.org/get

实例如下:
 

async with aiohttp.ClientSession() as session:
    async with session.get('http://httpbin.org/get') as resp:
        print(resp.status)
        print(await resp.text())

3.2 使用post 获取网页

session.post('http://httpbin.org/post', data=b'data')

3.3其他的HTTP操作方法

session.put('http://httpbin.org/put', data=b'data')
session.delete('http://httpbin.org/delete')
session.head('http://httpbin.org/get')
session.options('http://httpbin.org/get')
session.patch('http://httpbin.org/patch', data=b'data')

3.4 给url传递参数

params = {'key1': 'value1', 'key2': 'value2'}
async with session.get('http://httpbin.org/get',
                       params=params) as resp:
    expect = 'http://httpbin.org/get?key2=value2&key1=value1'
    assert str(resp.url) == expect

除了上面的字典的方式外,你也可以使用list 里包含2个tuple的方式,如下:

params = [('key', 'value1'), ('key', 'value2')]
async with session.get('http://httpbin.org/get',
                       params=params) as r:
    expect == 'http://httpbin.org/get?key=value2&key=value1'
    assert str(r.url) == expect

还可以使用str 的方式,如下:

async with session.get('http://httpbin.org/get',
                       params='key=value+1') as r:
assert str(r.url) == 'http://httpbin.org/get?key=value+1'

但要注意其中的“+”没有被编码

余下的内容请参考:

这篇博客

猜你喜欢

转载自blog.csdn.net/qq_34246164/article/details/81501476