64 lines
1.5 KiB
Python
64 lines
1.5 KiB
Python
#-*- encoding:utf-8 -*-
|
|
|
|
'''
|
|
@Author : dingjiawen
|
|
@Date : 2023/12/13 19:42
|
|
@Usage :
|
|
@Desc :
|
|
'''
|
|
|
|
|
|
|
|
import httpx
|
|
|
|
def http():
|
|
proxy = '127.0.0.1:7890'
|
|
proxies = {
|
|
'http://': 'http://' + proxy,
|
|
'https://': 'http://' + proxy,
|
|
}
|
|
|
|
with httpx.Client(proxies=proxies) as client:
|
|
response = client.get('https://httpbin.org/get')
|
|
print(response.text)
|
|
|
|
def http_auth():
|
|
proxy = 'username:password@127.0.0.1:7890'
|
|
proxies = {
|
|
'http://': 'http://' + proxy,
|
|
'https://': 'http://' + proxy,
|
|
}
|
|
|
|
with httpx.Client(proxies=proxies) as client:
|
|
response = client.get('https://httpbin.org/get')
|
|
print(response.text)
|
|
|
|
#socks方式需要额外安装pip install httpx-socks[asyncio]
|
|
def socks():
|
|
from httpx_socks import SyncProxyTransport
|
|
|
|
|
|
# 同步的方式
|
|
transport = SyncProxyTransport.from_url(
|
|
'socks5://127.0.0.1:7891')
|
|
|
|
with httpx.Client(transport=transport) as client:
|
|
response = client.get('https://httpbin.org/get')
|
|
print(response.text)
|
|
|
|
|
|
|
|
|
|
# 异步socks
|
|
async def main():
|
|
from httpx_socks import AsyncProxyTransport
|
|
transport = AsyncProxyTransport.from_url(
|
|
'socks5://127.0.0.1:7891')
|
|
async with httpx.AsyncClient(transport=transport) as client:
|
|
response = await client.get('https://httpbin.org/get')
|
|
print(response.text)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import asyncio
|
|
asyncio.get_event_loop().run_until_complete(main()) |