Skip to content

Commit 50b97f4

Browse files
committed
Prevent caching and reusing of connections.
1 parent 54a3d87 commit 50b97f4

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

validator.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ const (
3030
FailAssertResponseHeaderValue
3131
)
3232

33+
// In case there is a proxy caching resources. Potentially appending a URL
34+
// parameter would work better.
35+
var NoCacheRequestHeaders = map[string][]string{
36+
"Cache-Control": []string{"no-cache"},
37+
}
38+
39+
var NoCacheClient = &http.Client{
40+
Transport: &http.Transport{
41+
DisableKeepAlives: true,
42+
},
43+
}
44+
3345
const DEFAULT_SPEC_FILE = "urls.json"
3446
const MANUAL = `Usage: validate-http-headers SPECFILES...
3547
Iterates through SPECFILES, making requests and validating responses headers
@@ -119,7 +131,9 @@ func validateSpecFile(filename string) []int {
119131
errorCodes = append(errorCodes, InvalidRequest)
120132
break
121133
}
122-
requestHeaders := clone(defaultSpec.RequestHeaders, spec.RequestHeaders)
134+
requestHeaders := clone(NoCacheRequestHeaders,
135+
defaultSpec.RequestHeaders,
136+
spec.RequestHeaders)
123137
for key, headerValues := range requestHeaders {
124138
for _, val := range headerValues {
125139
req.Header.Add(key, val)
@@ -128,7 +142,8 @@ func validateSpecFile(filename string) []int {
128142

129143
// Send request
130144
fmt.Println("\nURL:", req.URL)
131-
resp, e := http.DefaultClient.Do(req)
145+
resp, e := NoCacheClient.Do(req)
146+
resp.Body.Close()
132147
if e != nil {
133148
fmt.Printf("ERROR: Failed to request: %v\n", e)
134149
errorCodes = append(errorCodes, FailedRequest)

0 commit comments

Comments
 (0)