Commit 5485e133 authored by Maxgis's avatar Maxgis

remove not support encoding

parent e951c555
...@@ -209,9 +209,13 @@ func parseEncoding(r *http.Request) string { ...@@ -209,9 +209,13 @@ func parseEncoding(r *http.Request) string {
continue continue
} }
vs := strings.Split(v, ";") vs := strings.Split(v, ";")
var cf acceptEncoder
var ok bool
if cf, ok = encoderMap[vs[0]]; !ok {
continue
}
if len(vs) == 1 { if len(vs) == 1 {
lastQ = q{vs[0], 1} return cf.name
break
} }
if len(vs) == 2 { if len(vs) == 2 {
f, _ := strconv.ParseFloat(strings.Replace(vs[1], "q=", "", -1), 64) f, _ := strconv.ParseFloat(strings.Replace(vs[1], "q=", "", -1), 64)
...@@ -219,12 +223,9 @@ func parseEncoding(r *http.Request) string { ...@@ -219,12 +223,9 @@ func parseEncoding(r *http.Request) string {
continue continue
} }
if f > lastQ.value { if f > lastQ.value {
lastQ = q{vs[0], f} lastQ = q{cf.name, f}
} }
} }
} }
if cf, ok := encoderMap[lastQ.name]; ok { return lastQ.name
return cf.name
}
return ""
} }
...@@ -41,4 +41,19 @@ func Test_ExtractEncoding(t *testing.T) { ...@@ -41,4 +41,19 @@ func Test_ExtractEncoding(t *testing.T) {
if parseEncoding(&http.Request{Header: map[string][]string{"Accept-Encoding": {"*"}}}) != "gzip" { if parseEncoding(&http.Request{Header: map[string][]string{"Accept-Encoding": {"*"}}}) != "gzip" {
t.Fail() t.Fail()
} }
if parseEncoding(&http.Request{Header: map[string][]string{"Accept-Encoding": {"x,gzip,deflate"}}}) != "gzip" {
t.Fail()
}
if parseEncoding(&http.Request{Header: map[string][]string{"Accept-Encoding": {"gzip,x,deflate"}}}) != "gzip" {
t.Fail()
}
if parseEncoding(&http.Request{Header: map[string][]string{"Accept-Encoding": {"gzip;q=0.5,x,deflate"}}}) != "deflate" {
t.Fail()
}
if parseEncoding(&http.Request{Header: map[string][]string{"Accept-Encoding": {"x"}}}) != "" {
t.Fail()
}
if parseEncoding(&http.Request{Header: map[string][]string{"Accept-Encoding": {"gzip;q=0.5,x;q=0.8"}}}) != "gzip" {
t.Fail()
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment