diff --git a/server-rs/crates/platform-tripo/src/common/config.rs b/server-rs/crates/platform-tripo/src/common/config.rs index ef7cdaf79..d3610cf58 100644 --- a/server-rs/crates/platform-tripo/src/common/config.rs +++ b/server-rs/crates/platform-tripo/src/common/config.rs @@ -101,7 +101,9 @@ impl TripoSettings { // 校验用的是 trim 后的值,发出去的也必须是 trim 后的值:密钥被复制时带上 // 首尾空白,就会在 provider 那边变成一个看不懂的 401。 api_key: Some(self.api_key.trim().to_string()), - base_url: Some(self.base_url.clone()), + // 与 base_url 校验同口径:校验看的是 trim 后的值,发出去的也得是 trim 后的值, + // 否则带空白的地址会在 SDK 里以低层解析错误暴露出来。 + base_url: Some(self.base_url.trim().to_string()), timeout: Some(self.request_timeout), retries: Some(self.retries), user_agent: Some(self.user_agent.clone()), @@ -187,9 +189,14 @@ mod tests { #[test] fn client_options_trim_credentials_that_validation_trimmed() { - let options = - settings(Duration::from_secs(1), " key ", "https://example.com").client_options(); + let options = settings( + Duration::from_secs(1), + " key ", + " https://example.com/v3 ", + ) + .client_options(); assert_eq!(options.api_key.as_deref(), Some("key")); + assert_eq!(options.base_url.as_deref(), Some("https://example.com/v3")); } }