...
1 package mux_test
2
3 import (
4 "fmt"
5 "net/http"
6
7 "github.com/gorilla/mux"
8 )
9
10
11
12
13 func ExampleRoute_HeadersRegexp() {
14 r := mux.NewRouter()
15 route := r.NewRoute().HeadersRegexp("Accept", "html")
16
17 req1, _ := http.NewRequest("GET", "example.com", nil)
18 req1.Header.Add("Accept", "text/plain")
19 req1.Header.Add("Accept", "text/html")
20
21 req2, _ := http.NewRequest("GET", "example.com", nil)
22 req2.Header.Set("Accept", "application/xhtml+xml")
23
24 matchInfo := &mux.RouteMatch{}
25 fmt.Printf("Match: %v %q\n", route.Match(req1, matchInfo), req1.Header["Accept"])
26 fmt.Printf("Match: %v %q\n", route.Match(req2, matchInfo), req2.Header["Accept"])
27
28
29
30 }
31
32
33
34
35 func ExampleRoute_HeadersRegexp_exactMatch() {
36 r := mux.NewRouter()
37 route := r.NewRoute().HeadersRegexp("Origin", "^https://example.co$")
38
39 yes, _ := http.NewRequest("GET", "example.co", nil)
40 yes.Header.Set("Origin", "https://example.co")
41
42 no, _ := http.NewRequest("GET", "example.co.uk", nil)
43 no.Header.Set("Origin", "https://example.co.uk")
44
45 matchInfo := &mux.RouteMatch{}
46 fmt.Printf("Match: %v %q\n", route.Match(yes, matchInfo), yes.Header["Origin"])
47 fmt.Printf("Match: %v %q\n", route.Match(no, matchInfo), no.Header["Origin"])
48
49
50
51 }
52
View as plain text