Files
hyapi-server/internal/infrastructure/external/huibo/curl_helper.go
2026-06-01 13:15:37 +08:00

59 lines
1.2 KiB
Go

package huibo
import (
"net/http"
"strings"
)
// generateCurlCommand 从 HTTP 请求生成 curl 命令
func generateCurlCommand(req *http.Request) string {
var cmd strings.Builder
cmd.WriteString("curl -X ")
cmd.WriteString(req.Method)
cmd.WriteString(" '")
cmd.WriteString(req.URL.String())
cmd.WriteString("'")
// 添加请求头
for key, values := range req.Header {
for _, value := range values {
cmd.WriteString(" \\\n -H '")
cmd.WriteString(key)
cmd.WriteString(": ")
cmd.WriteString(value)
cmd.WriteString("'")
}
}
return cmd.String()
}
// generateCurlCommandWithBody 生成包含请求体的 curl 命令
func generateCurlCommandWithBody(method, url string, headers map[string]string, body string) string {
var cmd strings.Builder
cmd.WriteString("curl -X ")
cmd.WriteString(method)
cmd.WriteString(" '")
cmd.WriteString(url)
cmd.WriteString("'")
// 添加请求头
for key, value := range headers {
cmd.WriteString(" \\\n -H '")
cmd.WriteString(key)
cmd.WriteString(": ")
cmd.WriteString(value)
cmd.WriteString("'")
}
// 添加请求体
if body != "" {
cmd.WriteString(" \\\n -d '")
cmd.WriteString(body)
cmd.WriteString("'")
}
cmd.WriteString(" \\\n --compressed")
return cmd.String()
}