【魔码量化HTTP实战 #19】错误码与重试:104 / 102 / 429 怎么办
【魔码量化HTTP实战 #19】错误码与重试:104 / 102 / 429 怎么办
本文来自魔码量化实战系列 —— 不依赖任何 SDK,用最朴素的 HTTP GET 请求玩转量化行情数据。
接口也会“闹脾气”
网络抖动、证书限流都会让请求失败。健壮的代码要能识别 HTTP 状态、失败时重试、拿到明确错误时优雅退出。下面先看一个错误代码会返回什么,再写一个带重试的封装。
import requests, time
BASE = "https://api.momaapi.com"
LICENCE = "你的魔码证书"
def get_json(url, retries=3):
for i in range(retries):
r = requests.get(url, timeout=10)
if r.status_code == 200:
return r.json()
print(f" 第{i+1}次失败 HTTP {r.status_code},重试...")
time.sleep(0.3)
return None
# 错误代码演示
bad = requests.get(f"{BASE}/hsstock/real/time/000000/{LICENCE}")
print("错误代码返回 HTTP", bad.status_code, "body:", bad.text[:120])
# 正常重试逻辑
d = get_json(f"{BASE}/hsstock/real/time/600519/{LICENCE}")
print("重试逻辑拿到数据:", d.get("p") if d else None)
运行结果(真实返回):
错误代码返回 HTTP 200 body: {"pe": 4.38, "ud": 0.03, "pc": 0.2595, "zf": 0.9516, "tr": 0.51, "pb_ratio": 0.48, "p": 11.59, "o": 11.57, "h": 11.64, "
重试逻辑拿到数据: 11.59
常见状态码
200正常;401/102类:证书无效或无权限,请检查LICENCE。429/ 限流:降速、加间隔(第 20 篇)。- 非 200 且重试仍失败:记录日志、跳过,别让单只股票拖垮整批。
免责声明:本文所有示例数据仅用于接口演示,不构成任何投资建议;市场有风险,投资需谨慎。
系列持续更新中。 想要亲手跑通上面的代码?前往 魔码证书申请页 免费领取你的专属证书,复制即用、按次计费、稳定可用。
想亲自试一下?免费获取证书
