package rongxing import ( "strings" ) // generateCurlCommand 生成可直接复现的 curl 命令,便于联调排查。 // proxyURL 非空时附加 -x,便于确认线上是否应走 SOCKS。 func generateCurlCommand(method, requestURL string, headers map[string]string, body, proxyURL string) string { var cmd strings.Builder cmd.WriteString("curl -X ") cmd.WriteString(method) cmd.WriteString(" '") cmd.WriteString(requestURL) cmd.WriteString("'") if p := strings.TrimSpace(proxyURL); p != "" { cmd.WriteString(" \\\n -x '") cmd.WriteString(escapeSingleQuotes(p)) cmd.WriteString("'") } 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, "'", `'\''`) }