← 返回博客列表

【魔码量化HTTP实战 #19】错误码与重试:104 / 102 / 429 怎么办

2026年08月26日 15:48 · 魔码数服 · 零SDK纯GET实战

【魔码量化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 且重试仍失败:记录日志、跳过,别让单只股票拖垮整批。

免责声明:本文所有示例数据仅用于接口演示,不构成任何投资建议;市场有风险,投资需谨慎。


系列持续更新中。 想要亲手跑通上面的代码?前往 魔码证书申请页 免费领取你的专属证书,复制即用、按次计费、稳定可用。

想亲自试一下?免费获取证书
客服微信
客服微信二维码