aiohttp 设置ClientSession参数

2 篇文章 0 订阅

1. 设置cookies

cookies = {'xxx': 0}
async with aiohttp.ClientSession(headers=headers, cookies=cookies) as session:
    result_text = None
    try:
        result = await session.post(url, timeout=timeout, data=data)
        result_text = await result.text()
    except Exception as e:
        raise (e)
    return result

2. 设置connector

#创建一个TCPConnector
conn=aiohttp.TCPConnector(verify_ssl=False)
#作为参数传入ClientSession
async with aiohttp.ClientSession(connector=conn) as session: 

3. 设置timeout

timeout = aiohttp.ClientTimeout(total=60)
async with aiohttp.ClientSession(timeout=timeout) as session:
    ...
async with session.get(url, timeout=timeout) as resp:
    ...

4. 设置auth

#创建一个auth
auth = aiohttp.BasicAuth(login="admin", password="admin")
#作为参数传入auth
async with aiohttp.ClientSession(auth=auth) as session: 

5. 设置param

payload = {'key1': 'value1', 'key2': 'value2'}
async with aiohttp.ClientSession() as session:
    async with session.post(url, data=payload)
import ujson

payload = {'key1': 'value1', 'key2': 'value2'}
async with aiohttp.ClientSession(
        json_serialize=ujson.dumps) as session:
    await session.post(url, data=payload)

6. 读取文件

with open(filename, 'wb') as fd:
    while True:
        chunk = await resp.content.read(chunk_size)
        if not chunk:
            break
        fd.write(chunk)
async def file_sender(file_name=None):
    async with aiofiles.open(file_name, 'rb') as f:
        chunk = await f.read(64*1024)
        while chunk:
            yield chunk
            chunk = await f.read(64*1024)

# Then you can use file_sender as a data provider:

async with session.post('http://httpbin.org/post',
                        data=file_sender(file_name='huge_file')) as resp:
    print(await resp.text())
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值