Files
hyapi-server/internal/infrastructure/external/rongxing/curl_helper.go

43 lines
1.0 KiB
Go
Raw Normal View History

2026-07-22 12:16:27 +08:00
package rongxing
import (
"strings"
)
// generateCurlCommand 生成可直接复现的 curl 命令,便于联调排查。
2026-07-23 15:59:00 +08:00
// proxyURL 非空时附加 -x便于确认线上是否应走 SOCKS。
func generateCurlCommand(method, requestURL string, headers map[string]string, body, proxyURL string) string {
2026-07-22 12:16:27 +08:00
var cmd strings.Builder
cmd.WriteString("curl -X ")
cmd.WriteString(method)
cmd.WriteString(" '")
2026-07-23 15:59:00 +08:00
cmd.WriteString(requestURL)
2026-07-22 12:16:27 +08:00
cmd.WriteString("'")
2026-07-23 15:59:00 +08:00
if p := strings.TrimSpace(proxyURL); p != "" {
cmd.WriteString(" \\\n -x '")
cmd.WriteString(escapeSingleQuotes(p))
cmd.WriteString("'")
}
2026-07-22 12:16:27 +08:00
for key, value := range headers {
cmd.WriteString(" \\\n -H '")
cmd.WriteString(key)
cmd.WriteString(": ")
cmd.WriteString(escapeSingleQuotes(value))
cmd.WriteString("'")
}
if body != "" {
cmd.WriteString(" \\\n -d '")
cmd.WriteString(escapeSingleQuotes(body))
cmd.WriteString("'")
}
return cmd.String()
}
func escapeSingleQuotes(s string) string {
return strings.ReplaceAll(s, "'", `'\''`)
}