MCPcopy Index your code
hub / github.com/bootdotdev/bootdev / runHTTPRequest

Function runHTTPRequest

checks/http.go:20–114  ·  view source on GitHub ↗
(
	client *http.Client,
	baseURL string,
	variables map[string]string,
	requestStep api.CLIStepHTTPRequest,
)

Source from the content-addressed store, hash-verified

18)
19
20func runHTTPRequest(
21 client *http.Client,
22 baseURL string,
23 variables map[string]string,
24 requestStep api.CLIStepHTTPRequest,
25) (
26 result api.HTTPRequestResult,
27) {
28 finalBaseURL := strings.TrimSuffix(baseURL, "/")
29 interpolatedURL := InterpolateVariables(requestStep.Request.FullURL, variables)
30 completeURL := strings.Replace(interpolatedURL, api.BaseURLPlaceholder, finalBaseURL, 1)
31
32 var req *http.Request
33 if requestStep.Request.BodyJSON != nil {
34 dat, err := json.Marshal(requestStep.Request.BodyJSON)
35 cobra.CheckErr(err)
36 interpolatedBodyJSONStr := InterpolateVariables(string(dat), variables)
37 req, err = http.NewRequest(
38 requestStep.Request.Method, completeURL,
39 bytes.NewBuffer([]byte(interpolatedBodyJSONStr)),
40 )
41 if err != nil {
42 cobra.CheckErr("Failed to create request")
43 }
44 req.Header.Set("Content-Type", "application/json")
45 } else if requestStep.Request.BodyForm != nil {
46 formValues := url.Values{}
47 for key, val := range requestStep.Request.BodyForm {
48 interpolatedVal := InterpolateVariables(val, variables)
49 formValues.Add(key, interpolatedVal)
50 }
51
52 encodedFormStr := formValues.Encode()
53 var err error
54 req, err = http.NewRequest(
55 requestStep.Request.Method, completeURL,
56 strings.NewReader(encodedFormStr),
57 )
58 if err != nil {
59 cobra.CheckErr("Failed to create request")
60 }
61
62 req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
63 } else {
64 var err error
65 req, err = http.NewRequest(requestStep.Request.Method, completeURL, nil)
66 if err != nil {
67 cobra.CheckErr("Failed to create request")
68 }
69 }
70
71 for k, v := range requestStep.Request.Headers {
72 req.Header.Add(k, InterpolateVariables(v, variables))
73 }
74
75 if requestStep.Request.BasicAuth != nil {
76 req.SetBasicAuth(requestStep.Request.BasicAuth.Username, requestStep.Request.BasicAuth.Password)
77 }

Calls 3

InterpolateVariablesFunction · 0.85
parseVariablesFunction · 0.85
truncateAndStringifyBodyFunction · 0.85