aiohttp的使用

aiohttp的使用aiohttp 介绍 aiohttp 强调的是异步并发 提供了对 asyncio await 的支持 可以实现单线程并发 IO 操作 安装 pipinstallai 使用方法 1 普通发请求 importaiohtt asyncwithaio C

aiohttp

介绍

  • aiohttp 强调的是异步并发。提供了对asyncio/await的支持,可以实现单线程并发IO操作。

安装

pip install aiohttp

使用方法

1. 普通发请求

import aiohttp import asyncio async def fetch(): async with aiohttp.ClientSession() as session: async with session.get('https://www.csdn.net/') as response: print(await response.text()) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) 

2. 添加请求参数

import aiohttp import asyncio params = { 
   'name': 'zhangsan', 'age': 10} async def fetch(): async with aiohttp.ClientSession() as session: async with session.get('https://www.baidu.com/s', params=params) as response: print(response.url) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) 
  • 代码运行结果:
    在这里插入图片描述

3. 请求头中自定义User-Agent

import aiohttp import asyncio headers = { 
    "User-Agent": "my-user-agent" } async def fetch(): async with aiohttp.ClientSession() as session: async with session.get('http://httpbin.org/user-agent', headers=headers) as response: print(await response.text()) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) 
  • 代码运行结果:
    在这里插入图片描述

4. 请求头中自定义cookies

import aiohttp import asyncio url = 'http://httpbin.org/cookies' cookies = { 
   'cookies_name': 'test_cookies'} async def fetch(): async with aiohttp.ClientSession() as session: async with session.get(url, cookies=cookies) as response: print(await response.text()) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) 

5. post字符串

url = 'http://httpbin.org' payload = { 
   'username': 'zhang', 'password': ''} async def fetch(): async with aiohttp.ClientSession() as session: async with session.post(url, data=payload) as response: print(await response.text()) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) 

6. post文件

url = 'http://httpbin.org' files = { 
   'file': open('test.txt', 'rb')} async def fetch(): async with aiohttp.ClientSession() as session: async with session.post(url, data=files) as response: print(await response.text()) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) 

7. 设置代理

url = "http://python.org" async def fetch(): async with aiohttp.ClientSession() as session: async with session.get(url, proxy="http://some.proxy.com") as response: print(response.status) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) 

8. 设置认证代理

url = "http://python.org" async def fetch(): async with aiohttp.ClientSession() as session: proxy_auth = aiohttp.BasicAuth('user', 'pass') async with session.get(url, proxy="http://some.proxy.com", proxy_auth=proxy_auth) as response: print(response.status) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) # 下面的方法也可以 url = "http://python.org" async def fetch(): async with aiohttp.ClientSession() as session: async with session.get(url, proxy="http://user:") as response: print(response.status) loop = asyncio.get_event_loop() tasks = [fetch(), ] loop.run_until_complete(asyncio.wait(tasks)) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218488.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:08
下一篇 2026年3月18日 上午7:08


相关推荐

  • 服务器文件句柄,设置文件句柄

    服务器文件句柄,设置文件句柄设置文件句柄在配置我们的 RedHatLinux 服务器时 确保文件句柄的最大数量足够大是非常关键的 文件句柄设置表示您在 Linux 系统中可以打开的文件数量 使用以下命令来确定整个系统中文件句柄的最大数量 cat proc sys fs file max32768Orac 建议将整个系统的文件句柄值至少设置为 65536 通过直接更改 proc 文件系统 您可以不必重新启动机

    2026年3月19日
    2
  • tree conflict svn 怎么解决

    tree conflict svn 怎么解决

    2021年9月24日
    60
  • CSS rgb颜色产生原理 & 颜色对照表

    CSS rgb颜色产生原理 & 颜色对照表本文转自:http://www.cnblogs.com/iteakey/articles/3016093.htmlHTMLCSS颜色对照表FFFFFF#DDDDDD#AAAAAA#888888#666666#444444#000000#FFB7DD#FF88C2#FF44AA#FF0088#C10066#A2

    2022年5月13日
    112
  • iterator的用法_名词所有格的用法整理初一

    iterator的用法_名词所有格的用法整理初一@Overrideprotectedvoidreduce(Textkey,Iterable<IntWritable>values,Contextcontext)throwsIOException,InterruptedException{intcount=0;Iterator<IntWritable>iterator=values.iterator();//<1,1,1>

    2025年8月4日
    7
  • knn算法实现手写数字识别的背景_knn手写数字识别60000训练集

    knn算法实现手写数字识别的背景_knn手写数字识别60000训练集KNN最邻近分类算法:(近邻取样)邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是机器学习分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。属于监督学习,有类别标记,且KNN是惰性学习。叫做Memory-basedlearning、也叫instance-basedlearning.他…

    2025年11月13日
    6
  • 代码审计 JavaScript代码理解.

    代码审计 JavaScript代码理解.JavaScript 概括 JavaScript 简称 JS 是一种具有函数优先的轻量级 解释型或即时编译型的编程语言 虽然它是作为开发 Web 页面的脚本语言而出名 但是它也被用到了很多非浏览器环境中 JavaScript 基于原型编程 多范式的动态脚本语言 并且支持面向对象 命令式 声明式 函数式编程范式

    2026年3月19日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号