阿里云百炼 Token Plan Java 原生HTTP调用示例
简介:很多同学在接入阿里云百炼 Token Plan 套餐时,习惯使用 DashScope SDK,但 Token Plan 是独立订阅套餐,密钥为
sk-sp-开头,不能直接使用 DashScope SDK,推荐使用 OpenAI 兼容接口调用。本文使用 JDK11+ 内置java.net.httpHttpClient,零第三方依赖,极简实现 Token Plan 的对话接口调用。
什么是 Token Plan
Token Plan 是阿里云百炼 Model Studio 的订阅额度套餐,和普通按量付费的 DashScope API 相互独立:
- 密钥前缀:
sk-sp-,和普通百炼sk-密钥不能混用; - 调用端点:独立域名
token-plan.cn-beijing.maas.aliyuncs.com,支持 OpenAI 兼容协议; - 计费:消耗套餐内 Credits,不是按Token计费;
- 地域要求:必须在华北2(北京)购买订阅。
⚠️ 重点坑点:不要使用 dashscope-java SDK 调用 Token Plan,会鉴权失败,优先使用 OpenAI 兼容接口。
访问链接:https://www.aliyun.com/benefit/scene/tokenplan
环境要求
- JDK 11 及以上(内置 HttpClient,无需引入 OkHttp、OpenAI SDK)
- 提前在百炼Model Studio华北2控制台订阅Token Plan,生成
sk-sp-密钥
完整代码示例
packageorg.example.aliyun;importjava.net.URI;importjava.net.http.HttpClient;importjava.net.http.HttpRequest;importjava.net.http.HttpResponse;importjava.nio.charset.StandardCharsets;/** * 阿里云百炼按 Token 计费(Token Plan)HTTP 直连调用示例 * * 不依赖官方 SDK,直接调用 DashScope 的 OpenAI 兼容接口。 * 接口地址:https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions * * 使用前提: * 1. 从阿里云百炼控制台获取 API Key * 2. 将 API Key 配置为环境变量 DASHSCOPE_API_KEY */publicclassAliyunTokenPlanHttpDemo{privatestaticfinalStringAPI_URL="https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions";publicstaticvoidmain(String[]args)throwsException{StringapiKey="your-api-key";if(apiKey==null||apiKey.isBlank()){System.err.println("请先设置环境变量 DASHSCOPE_API_KEY");return;}// 请求体:OpenAI 兼容格式StringrequestBody=""" { "model": "qwen3.8-max", "messages": [ {"role": "system", "content": "你是一个乐于助人的助手。"}, {"role": "user", "content": "用一句话介绍阿里云百炼怎么用Java"} ] } """;HttpRequestrequest=HttpRequest.newBuilder().uri(URI.create(API_URL)).header("Authorization","Bearer "+apiKey).header("Content-Type","application/json").POST(HttpRequest.BodyPublishers.ofString(requestBody,StandardCharsets.UTF_8)).build();HttpClientclient=HttpClient.newHttpClient();HttpResponse<String>response=client.send(request,HttpResponse.BodyHandlers.ofString());System.out.println("HTTP 状态码:"+response.statusCode());System.out.println("响应内容:");System.out.println(response.body());}}运行说明
- 密钥安全:生产环境禁止硬编码API Key,使用环境变量/配置中心读取;
- 模型名称:
qwen3.8-max是示例,以Token Plan控制台支持模型列表为准; - 请求格式:完全兼容OpenAI Chat Completions协议,可以扩展
temperature、top_p、stream流式参数;
扩展:开启流式返回 stream:true
修改请求体即可启用SSE流式输出,适合对话实时返回场景:
{ "model": "qwen3.8-max", "stream": true, "messages": [ {"role": "system", "content": "你是一个乐于助人的助手。"}, {"role": "user", "content": "用一句话介绍阿里云百炼怎么用Java"} ] }JDK原生HttpClient处理SSE需要按行解析响应体,自行处理
data:片段。
常见报错排查
- 401 Unauthorized
- 使用了普通百炼
sk-密钥,Token Plan必须是sk-sp-密钥; - 密钥前后有空格,复制时注意;
- 地域不对,Token Plan订阅仅华北2。
- 使用了普通百炼
- 404 Not Found
- Base URL写错,不能用dashscope的接口地址。
- 429 Too Many Requests
- 套餐Credits额度耗尽,触发限流,等待周期重置或者购买额外用量包。
小结
Token Plan 不兼容 DashScope SDK,使用 OpenAI 兼容接口是最稳妥的接入方式。JDK11+自带HttpClient,零依赖,非常适合轻量调用场景。如果是SpringBoot项目,可以封装成RestTemplate或者WebClient版本,方便业务集成。