
简介:很多同学在接入阿里云百炼 Token Plan 套餐时,习惯使用 DashScope SDK,但 Token Plan 是独立订阅套餐,密钥为
sk-sp-开头,不能直接使用 DashScope SDK,推荐使用 OpenAI 兼容接口调用。本文使用 JDK11+ 内置java.net.httpHttpClient,零第三方依赖,极简实现 Token Plan 的对话接口调用。
Token Plan 是阿里云百炼 Model Studio 的订阅额度套餐,和普通按量付费的 DashScope API 相互独立:
sk-sp-,和普通百炼 sk- 密钥不能混用;token-plan.cn-beijing.maas.aliyuncs.com,支持 OpenAI 兼容协议;⚠️ 重点坑点:不要使用 dashscope-java SDK 调用 Token Plan,会鉴权失败,优先使用 OpenAI 兼容接口。
访问链接:https://www.aliyun.com/benefit/scene/tokenplan

sk-sp- 密钥package org.example.aliyun;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.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
*/
public class AliyunTokenPlanHttpDemo {
private static final String API_URL =
"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions";
public static void main(String[] args) throws Exception {
String apiKey = "your-api-key";
if (apiKey == null || apiKey.isBlank()) {
System.err.println("请先设置环境变量 DASHSCOPE_API_KEY");
return;
}
// 请求体:OpenAI 兼容格式
String requestBody = """
{
"model": "qwen3.8-max",
"messages": [
{"role": "system", "content": "你是一个乐于助人的助手。"},
{"role": "user", "content": "用一句话介绍阿里云百炼怎么用Java"}
]
}
""";
HttpRequest request = 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();
HttpClient client = 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());
}
}qwen3.8-max 是示例,以Token Plan控制台支持模型列表为准;temperature、top_p、stream 流式参数;修改请求体即可启用SSE流式输出,适合对话实时返回场景:
{
"model": "qwen3.8-max",
"stream": true,
"messages": [
{"role": "system", "content": "你是一个乐于助人的助手。"},
{"role": "user", "content": "用一句话介绍阿里云百炼怎么用Java"}
]
}JDK原生HttpClient处理SSE需要按行解析响应体,自行处理
data:片段。
sk- 密钥,Token Plan必须是sk-sp-密钥;Token Plan 不兼容 DashScope SDK,使用 OpenAI 兼容接口是最稳妥的接入方式。JDK11+自带HttpClient,零依赖,非常适合轻量调用场景。如果是SpringBoot项目,可以封装成RestTemplate或者WebClient版本,方便业务集成。