Skip to content
This repository was archived by the owner on Nov 5, 2024. It is now read-only.

Commit 3f21049

Browse files
committed
[proxy]特殊页面也支持自定义的响应Header
1 parent 25109e5 commit 3f21049

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

teaproxy/request_page.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ func (this *Request) callPage(writer *ResponseWriter, status int) (shouldStop bo
1515
if len(this.pages) == 0 {
1616
return false
1717
}
18+
1819
for _, page := range this.pages {
1920
if page.Match(status) {
2021
if urlPrefixRegexp.MatchString(page.URL) {
@@ -31,11 +32,16 @@ func (this *Request) callPage(writer *ResponseWriter, status int) (shouldStop bo
3132
msg := "404 page not found: '" + page.URL + "'"
3233

3334
writer.WriteHeader(http.StatusNotFound)
34-
writer.Write([]byte(msg))
35+
_, err := writer.Write([]byte(msg))
36+
if err != nil {
37+
logs.Error(err)
38+
}
3539
return true
3640
}
3741

38-
// writer.WriteHeader(status)
42+
// 自定义响应Headers
43+
this.WriteResponseHeaders(writer, http.StatusOK)
44+
3945
// 状态码改成200
4046
writer.WriteHeader(http.StatusOK)
4147
buf := bytePool1k.Get()
@@ -44,7 +50,10 @@ func (this *Request) callPage(writer *ResponseWriter, status int) (shouldStop bo
4450
if err != nil {
4551
logs.Error(err)
4652
}
47-
fp.Close()
53+
err = fp.Close()
54+
if err != nil {
55+
logs.Error(err)
56+
}
4857
}
4958

5059
return true

teaproxy/request_shutdown.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,24 @@ func (this *Request) callShutdown(writer *ResponseWriter) error {
2020
msg := "404 page not found: '" + this.shutdownPage + "'"
2121

2222
writer.WriteHeader(http.StatusNotFound)
23-
writer.Write([]byte(msg))
23+
_, err = writer.Write([]byte(msg))
24+
if err != nil {
25+
logs.Error(err)
26+
}
2427
return err
2528
}
2629

30+
// 自定义响应Headers
31+
this.WriteResponseHeaders(writer, http.StatusOK)
32+
2733
writer.WriteHeader(http.StatusOK)
2834
buf := bytePool1k.Get()
2935
_, err = io.CopyBuffer(writer, fp, buf)
3036
bytePool1k.Put(buf)
31-
fp.Close()
37+
err = fp.Close()
38+
if err != nil {
39+
logs.Error(err)
40+
}
3241

3342
return err
3443
}

0 commit comments

Comments
 (0)