MCPcopy
hub / github.com/httprunner/httprunner / buildURL

Function buildURL

hrp/parser.go:31–73  ·  view source on GitHub ↗
(baseURL, stepURL string, queryParams url.Values)

Source from the content-addressed store, hash-verified

29}
30
31func buildURL(baseURL, stepURL string, queryParams url.Values) (fullUrl *url.URL) {
32 uStep, err := url.Parse(stepURL)
33 if err != nil {
34 log.Error().Str("stepURL", stepURL).Err(err).Msg("[buildURL] parse url failed")
35 return nil
36 }
37
38 defer func() {
39 // append query params
40 if paramStr := queryParams.Encode(); paramStr != "" {
41 if uStep.RawQuery == "" {
42 uStep.RawQuery = paramStr
43 } else {
44 uStep.RawQuery = uStep.RawQuery + "&" + paramStr
45 }
46 }
47
48 // ensure path suffix '/' exists
49 if uStep.RawQuery == "" {
50 uStep.Path = strings.TrimRight(uStep.Path, "/") + "/"
51 }
52
53 fullUrl = uStep
54 }()
55
56 // step url is absolute url
57 if uStep.Host != "" {
58 return uStep
59 }
60
61 // step url is relative, based on base url
62 uConfig, err := url.Parse(baseURL)
63 if err != nil {
64 log.Error().Str("baseURL", baseURL).Err(err).Msg("[buildURL] parse url failed")
65 return
66 }
67
68 // merge url
69 uStep.Scheme = uConfig.Scheme
70 uStep.Host = uConfig.Host
71 uStep.Path = path.Join(uConfig.Path, uStep.Path)
72 return uStep
73}
74
75func (p *Parser) ParseHeaders(rawHeaders map[string]string, variablesMapping map[string]interface{}) (map[string]string, error) {
76 parsedHeaders := make(map[string]string)

Callers 2

TestBuildURLFunction · 0.85
prepareUrlParamsMethod · 0.85

Calls 2

ParseMethod · 0.80
ErrMethod · 0.80

Tested by 1

TestBuildURLFunction · 0.68