#基本请求
#异步请求
async_get.py
import asyncio
from hs_net import Net
async def main():
# 推荐使用 async with 自动管理连接
async with Net() as net:
resp = await net.get("https://example.com")
print(f"状态码: {resp.status_code}")
print(f"是否成功: {resp.ok}")
print(f"响应长度: {len(resp.text)} 字符")
asyncio.run(main())#同步请求
sync_get.py
from hs_net import SyncNet
# 推荐使用 with 自动管理连接
with SyncNet() as net:
resp = net.get("https://example.com")
print(f"状态码: {resp.status_code}")
print(f"域名: {resp.domain}")
print(f"主机: {resp.host}")#手动管理连接
如果不使用上下文管理器,记得手动关闭:
manual_close.py
# 异步
net = Net()
resp = await net.get("https://example.com")
await net.close() # 手动关闭
# 同步
net = SyncNet()
resp = net.get("https://example.com")
net.close() # 手动关闭#Response 常用属性
response_attrs.py
with SyncNet() as net:
resp = net.get("https://example.com")
# 状态信息
resp.status_code # 200
resp.ok # True
# 响应内容
resp.text # 文本内容
resp.content # 原始字节
resp.json_data # JSON(自动解析,非 JSON 为 None)
# 元信息
resp.url # 最终 URL(重定向后)
resp.domain # "https://example.com"
resp.host # "example.com"
resp.headers # 响应头字典
resp.cookies # 响应 cookies
resp.request_data # 原始请求信息#带参数的请求
with_params.py
with SyncNet() as net:
# URL 查询参数
resp = net.get("https://httpbin.org/get", params={"q": "python", "page": "1"})
# 实际请求: https://httpbin.org/get?q=python&page=1
# 自定义请求头
resp = net.get("https://example.com", headers={"Accept-Language": "zh-CN"})
# 自定义超时
resp = net.get("https://example.com", timeout=5.0)
# 指定代理
resp = net.get("https://example.com", proxy="http://proxy:8080")
# 自定义 User-Agent
resp = net.get("https://example.com", user_agent="MyBot/1.0")
