From b510cc736246dcc9f643584484208b7e82089c32 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Thu, 15 May 2025 08:09:21 +0800 Subject: [PATCH] 'commit' --- .../Util/Suno/SunoMusicGenerator.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java index 9a04852e..516698a3 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java @@ -112,11 +112,11 @@ public class SunoMusicGenerator { Thread.sleep(RETRY_INTERVAL); // 构建查询URL,添加ids参数 - HttpUrl.Builder urlBuilder = HttpUrl.parse(FEED_URL).newBuilder(); - + // 注意:不使用HttpUrl.Builder,直接构建URL字符串以避免自动URL编码 + StringBuilder urlBuilder = new StringBuilder(FEED_URL); + // 添加ids参数,用逗号分隔多个ID if (!taskIds.isEmpty()) { - // 注意:这里我们查询的是clips的ID,而不是生成任务的ID // 从生成响应中获取clips的ID List clipIds = new ArrayList<>(); if (generateJson.containsKey("clips")) { @@ -129,28 +129,34 @@ public class SunoMusicGenerator { } } + // 构建查询参数 + urlBuilder.append("?"); + // 如果找到了clips的ID,则使用这些ID进行查询 if (!clipIds.isEmpty()) { String idsParam = String.join(",", clipIds); - urlBuilder.addQueryParameter("ids", idsParam); + urlBuilder.append("ids=").append(idsParam); log.info("使用clips ID查询: {}", idsParam); } else { // 否则使用任务ID String idsParam = String.join(",", taskIds); - urlBuilder.addQueryParameter("ids", idsParam); + urlBuilder.append("ids=").append(idsParam); log.info("使用任务ID查询: {}", idsParam); } } + String url = urlBuilder.toString(); + log.info("查询URL: {}", url); + // 创建查询请求 Request feedRequest = new Request.Builder() - .url(urlBuilder.build()) + .url(url) .method("GET", null) .addHeader("Authorization", "Bearer " + ak) .addHeader("Accept", "application/json") // 添加Accept头 .build(); - log.info("查询URL: {}", urlBuilder.build()); + log.info("查询URL: {}", url); // 执行查询请求 Response feedResponse = client.newCall(feedRequest).execute();