[我是python的新手,我正在尝试开发发送大约10,000个请求以测试我的API的应用,我使用pyqt5 to和python 3,我想使用请求发出多个A-sync请求,发送多个请求并不等待响应,而是在响应准备就绪时添加回调,例如更新UI,请给我一个有效的示例,感谢帮助
我尝试使用您的代码,但无需在会话中添加代理即可工作。这里是代码
import aiohttp
import asyncio
import sys
import time
from decimal import localcontext, Decimal, ROUND_HALF_UP
from datetime import datetime,timezone ,timedelta
BASE_URI = 'https://d.com/session.php'
def show_exception_and_exit(exc_type, exc_value, tb):
traceback.print_exception(exc_type, exc_value, tb)
sys.exit(-1)
async def fetch(session, url):
proxies = {
"http" :"http://W09s1H:[email protected]:9951",
"https" :"https://W09s1H:[email protected]:9951"
}
Timestamp = int((datetime.utcnow() - datetime(1970,1,1)).total_seconds())
headers = {
"user-agent": "Mozilla/5.0 (X11; Linux i686; rv:64.0) Gecko/20100101 Firefox/64.0"
}
JsonSession = "{'device':'id'}"
async with session.post(url,
data=JsonSession,
headers=headers,
params={"timestamp":Timestamp}) as response:
return await response.text()
async def main(url):
tasks = []
results = []
async with aiohttp.ClientSession() as session:
for n in range(1,10):
tasks.append(fetch(session, url))
results = await asyncio.gather(*tasks)
return results
def parallel(url):
loop = asyncio.get_event_loop()
results = loop.run_until_complete(main(url))
return results
# --- main ---
result = parallel(BASE_URI)
for item in result:
print(item[:300])
print('-----')
并且当我添加这样的代理时:
async with session.post(url,
data=JsonSession,
headers=headers,
params={"timestamp":Timestamp},
proxies=proxies) as response:
我收到错误
Traceback (most recent call last):
File "C:/Users/soft/AppData/Local/Programs/Python/Python37-32/MyApp/Scripts/Test.py", line 51, in <module>
result = parallel(BASE_URI)
File "C:/Users/soft/AppData/Local/Programs/Python/Python37-32/MyApp/Scripts/Test.py", line 44, in parallel
results = loop.run_until_complete(main(url))
File "C:\Users\soft\AppData\Local\Programs\Python\Python37-32\lib\asyncio\base_events.py", line 579, in run_until_complete
return future.result()
File "C:/Users/soft/AppData/Local/Programs/Python/Python37-32/MyApp/Scripts/Test.py", line 39, in main
results = await asyncio.gather(*tasks)
File "C:/Users/soft/AppData/Local/Programs/Python/Python37-32/MyApp/Scripts/Test.py", line 30, in fetch
proxies=proxies) as response:
File "C:\Users\soft\AppData\Local\Programs\Python\Python37-32\lib\site-packages\aiohttp\client.py", line 876, in post
**kwargs))
TypeError: _request() got an unexpected keyword argument 'proxies'
如何添加代理到session.post,因为我确实需要添加它