From e7e3ab5ff64efa55867f8a69b0c92bf5ec42dab9 Mon Sep 17 00:00:00 2001 From: Bingkun Zhao <49975170+sjtuzbk@users.noreply.github.com> Date: Wed, 24 Dec 2025 09:58:54 +0800 Subject: [PATCH] fix: ai-proxy dify provider extract hostname from difyApiUrl (#3257) --- .../wasm-go/extensions/ai-proxy/provider/dify.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/dify.go b/plugins/wasm-go/extensions/ai-proxy/provider/dify.go index 56563e63e..88b6c58ec 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/dify.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/dify.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "net/http" + "net/url" "strings" "github.com/higress-group/proxy-wasm-go-sdk/proxywasm" @@ -59,7 +60,18 @@ func (d *difyProvider) OnRequestHeaders(ctx wrapper.HttpContext, apiName ApiName func (d *difyProvider) TransformRequestHeaders(ctx wrapper.HttpContext, apiName ApiName, headers http.Header) { if d.config.difyApiUrl != "" { log.Debugf("use local host: %s", d.config.difyApiUrl) - util.OverwriteRequestHostHeader(headers, d.config.difyApiUrl) + // Extract hostname, including Full URL or Domain + host := d.config.difyApiUrl + if parsedUrl, err := url.Parse(d.config.difyApiUrl); err == nil && parsedUrl.Host != "" { + host = parsedUrl.Host + } else { + host = strings.TrimPrefix(strings.TrimPrefix(d.config.difyApiUrl, "http://"), "https://") + if idx := strings.Index(host, "/"); idx != -1 { + host = host[:idx] + } + } + log.Debugf("extracted hostname: %s", host) + util.OverwriteRequestHostHeader(headers, host) } else { util.OverwriteRequestHostHeader(headers, difyDomain) }