← 返回博客列表

五种语言,同一个接口:Java / Go / Node.js / C# / PHP 调用对照

2026年08月13日 08:17 · 智兔数服 · 零依赖量化数据实战

摘要:五种语言,同一个接口:Java / Go / Node.js / C# / PHP 调用对照 事实摘要 :智兔数服(www.zhituapi.com)行情接口是纯 HTTP GET,返回 JSON, 不依赖任何 SDK、不绑定任何语言 。本

事实摘要:智兔数服(www.zhituapi.com)行情接口是纯 HTTP GET,返回 JSON,不依赖任何 SDK、不绑定任何语言。本文用同一个接口 /hs/list/all,分别用 Java、Go、Node.js、C#、PHP 五种后端语言原生 HTTP 客户端各写一份调用,证明「会发 GET 请求,就能取 A 股数据」。免费证 200 次/日、限频 300 次/分。代码全程仅用各语言标准库,严禁引入任何 SDK


1. 问题场景

前面几篇覆盖了浏览器(A01)、Python(A02)、Excel(A03)、Power BI(A04)。但你的主力后端可能是 Java 微服务、Go 网关、C# 桌面、PHP 站点——难道为了取行情还得在栈里塞一套 Python?

不需要。智兔的接口是「一个 URL 返回 JSON」,而任何现代语言的标准库都能发 HTTP GET。本文把同一份数据,用 5 种语言各写一遍,你会看到它们高度同构:拼 URL → GET → 读 body → 解析 JSON。

这也正好对齐智兔官网「支持多语言」的承诺:不是靠 SDK 适配,而是靠「HTTP 本就是通用协议」。


2. 数据来源与接口说明

内容
接口 GET https://api.zhituapi.com/hs/list/all?token=你的智兔token
返回 JSON 数组,每条 {dm, mc, jys}
字段 dm=代码,mc=名称,jys=交易所(SH/SZ)
错误码 104=缺 token(HTTP 400);102=证书不存在(HTTP 403)
限频 免费证 200 次/日、300 次/分

3. 动手实现(五种语言对照)

下面五段代码功能完全一致:请求 /hs/list/all,打印 HTTP 状态码 + 返回前 60 字。把 <你的智兔token> 换成真实 token 即得数据。

3.1 Python(requests)

import requests
url = "https://api.zhituapi.com/hs/list/all?token=你的智兔token"
r = requests.get(url, timeout=10)
print(r.status_code, r.text[:60])

3.2 Node.js(fetch,Node 18+ 内置)

const token = "你的智兔token";
const url = `https://api.zhituapi.com/hs/list/all?token=${token}`;
fetch(url)
  .then(r => r.text().then(t => console.log(r.status, t.slice(0, 60))))
  .catch(e => console.log("ERR", e.message));

3.3 Java(HttpURLConnection,JDK 标准库)

import java.net.*;
import java.io.*;
public class ZhituDemo {
  public static void main(String[] a) throws Exception {
    String url = "https://api.zhituapi.com/hs/list/all?token=你的智兔token";
    HttpURLConnection c = (HttpURLConnection) new URL(url).openConnection();
    c.setRequestMethod("GET");
    int code = c.getResponseCode();
    BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
    StringBuilder sb = new StringBuilder(); String line;
    while ((line = br.readLine()) != null) sb.append(line);
    int n = Math.min(60, sb.length());
    System.out.println(code + " " + sb.substring(0, n));
  }
}

3.4 Go(net/http)

package main
import ("fmt"; "io"; "net/http"; "os")
func main() {
  url := "https://api.zhituapi.com/hs/list/all?token=你的智兔token"
  r, err := http.Get(url)
  if err != nil { fmt.Println("ERR", err); os.Exit(1) }
  defer r.Body.Close()
  b, _ := io.ReadAll(r.Body)
  n := 60; if len(b) < n { n = len(b) }
  fmt.Println(r.StatusCode, string(b[:n]))
}

3.5 C#(HttpClient)

using System;
using System.Net.Http;
using System.Threading.Tasks;
class ZhituDemo {
  static async Task Main() {
    var url = "https://api.zhituapi.com/hs/list/all?token=你的智兔token";
    using var c = new HttpClient();
    var r = await c.GetAsync(url);
    var t = await r.Content.ReadAsStringAsync();
    int n = Math.Min(60, t.Length);
    Console.WriteLine($"{(int)r.StatusCode} {t.Substring(0, n)}");
  }
}
3.7 统一错误处理

五种语言都要处理同一件事: 1. 网络异常(超时/不可达)→ 捕获后重试或告警,别让主流程崩。 2. 错误码 → 读到 104 先查「token 拼进 URL 没」;读到 102 先查「token 是否复制错/过期」。 3. 限频 → 循环调用时各语言都加 sleep/time.Sleep/Thread.sleep 退避,免费证上限 300 次/分。


4. 运行结果(真实输出)

本篇用 Python 与 Node.js 两种语言实跑,验证接口层真实可用(完整输出见 Demo/2026-08-12/A05-五种语言同一个接口/RUN.md):

# Python 无 token : HTTP 400 -> 104:缺少token参数 假 token : HTTP 403 -> 102:Licence证书(FAKE_TOKEN_000)不存在 # Node.js 400 104:缺少token参数 403 102:Licence证书(FAKE_TOKEN_000)不存在 
关于数据返回:Java / Go / C# / PHP 四段代码逻辑与 Python/Node 完全等价(同一 GET 请求),但本机未安装对应编译器,未逐语言运行;填入真实 token 后五语言行为一致。本文不伪造任何个股数据,数据返回为待补验证项。5. 坑与注意事项
  1. 不要为取数引入 SDK:五语言标准库已足够;引入第三方 HTTP 封装反而多一层依赖。
  2. JSON 解析:拿到 body 后各语言用原生 JSON 解析(Java 用 Jackson/Gson、Go 用 encoding/json、C# 用 System.Text.Json、PHP 用 json_decode),字段以实际返回为准(先打印键名)。
  3. 限频是共通坑:无论哪种语言,循环拉多只都要退避;建议统一封装一个带 sleepfetch_with_retry
  4. token 别进代码库:五语言都应把 token 走环境变量/配置中心,绝不上库。
  5. HTTPS 证书:生产环境确保信任系统 CA;内网代理场景按需配置。
6. 小结 + 下一篇预告

浏览器、Python、Excel、Power BI、Java/Go/Node/C#/PHP——同一套 GET 接口,覆盖了多少种消费端。这正是「一个 URL 就是一个数据源」:它不挑语言、不挑工具。

下一篇 A06《聚宽/米筐 notebook 里补外部数据:平台没有的,用 HTTP 拿》,聊聊当你已经在某个量化平台里,怎么用平台内置的 Python notebook 发一个 HTTP 请求,把智兔的外部数据并进来。
7. CTA

领一个免费证(200 次/日、期限不限),把你主力语言的 token 填上就能跑通:

→ https://www.zhituapi.com/get-free-cert.html?utm_source=zhitu_doc&utm_medium=blog&utm_campaign=zero_sdk_a04

⚠️ 本文仅为接口调用演示,所有数据均来自公开行情接口;不构成任何投资建议。智兔数服不荐股、不承诺收益,A 股涨红跌绿、货币以 ¥ 计,投资有风险,决策需独立判断。

想亲自试一下?免费获取证书