首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >阿里云百炼 Token Plan Java 原生HTTP调用示例

阿里云百炼 Token Plan Java 原生HTTP调用示例

作者头像
SmileNicky
发布于 2026-10-03 08:06:19
发布于 2026-10-03 08:06:19
140
举报
文章被收录于专栏:Nicky's blogNicky's blog

阿里云百炼 Token Plan Java 原生HTTP调用示例

简介:很多同学在接入阿里云百炼 Token Plan 套餐时,习惯使用 DashScope SDK,但 Token Plan 是独立订阅套餐,密钥为 sk-sp- 开头,不能直接使用 DashScope SDK,推荐使用 OpenAI 兼容接口调用。本文使用 JDK11+ 内置 java.net.http HttpClient,零第三方依赖,极简实现 Token Plan 的对话接口调用。

什么是 Token Plan

Token Plan 是阿里云百炼 Model Studio 的订阅额度套餐,和普通按量付费的 DashScope API 相互独立:

  1. 密钥前缀:sk-sp-,和普通百炼 sk- 密钥不能混用;
  2. 调用端点:独立域名 token-plan.cn-beijing.maas.aliyuncs.com,支持 OpenAI 兼容协议;
  3. 计费:消耗套餐内 Credits,不是按Token计费;
  4. 地域要求:必须在华北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- 密钥

完整代码示例

代码语言:javascript
复制
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());

    }
}

运行说明

  1. 密钥安全:生产环境禁止硬编码API Key,使用环境变量/配置中心读取;
  2. 模型名称:qwen3.8-max 是示例,以Token Plan控制台支持模型列表为准;
  3. 请求格式:完全兼容OpenAI Chat Completions协议,可以扩展 temperature、top_p、stream 流式参数;
扩展:开启流式返回 stream:true

修改请求体即可启用SSE流式输出,适合对话实时返回场景:

代码语言:javascript
复制
{
  "model": "qwen3.8-max",
  "stream": true,
  "messages": [
    {"role": "system", "content": "你是一个乐于助人的助手。"},
    {"role": "user", "content": "用一句话介绍阿里云百炼怎么用Java"}
  ]
}

JDK原生HttpClient处理SSE需要按行解析响应体,自行处理data: 片段。

常见报错排查

  1. 401 Unauthorized
    • 使用了普通百炼 sk- 密钥,Token Plan必须是sk-sp-密钥;
    • 密钥前后有空格,复制时注意;
    • 地域不对,Token Plan订阅仅华北2。
  2. 404 Not Found
    • Base URL写错,不能用dashscope的接口地址。
  3. 429 Too Many Requests
    • 套餐Credits额度耗尽,触发限流,等待周期重置或者购买额外用量包。

小结

Token Plan 不兼容 DashScope SDK,使用 OpenAI 兼容接口是最稳妥的接入方式。JDK11+自带HttpClient,零依赖,非常适合轻量调用场景。如果是SpringBoot项目,可以封装成RestTemplate或者WebClient版本,方便业务集成。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 阿里云百炼 Token Plan Java 原生HTTP调用示例
    • 什么是 Token Plan
    • 环境要求
    • 完整代码示例
    • 运行说明
      • 扩展:开启流式返回 stream:true
    • 常见报错排查
    • 小结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档