Files
2026-06-30 10:38:52 +08:00

26 lines
517 B
Go

package server
import (
"fmt"
"net/url"
"strings"
)
func ParseAndValidateRawURL(raw string) (*url.URL, error) {
value := strings.TrimSpace(raw)
if value == "" {
return nil, fmt.Errorf("empty raw url")
}
parsed, err := url.Parse(value)
if err != nil {
return nil, err
}
if parsed.Scheme != "http" && parsed.Scheme != "https" {
return nil, fmt.Errorf("unsupported scheme %q", parsed.Scheme)
}
if strings.TrimSpace(parsed.Host) == "" {
return nil, fmt.Errorf("empty host")
}
return parsed, nil
}