接受图片 header 请求
Accept image header request
我写了一个路由函数,只接受图像请求。看下面的代码。
// Add image route paths
func addImage(path string, handler httpImageFunc, name ...string) {
//log.Println("Add image")
if len(name) > 0 {
router.Handle(path, httpImageFunc(handler)).
Methods("GET").
Headers("Accept", "image/*").
Name(name[0])
} else {
router.Handle(path, httpImageFunc(handler)).
Methods("GET").
Headers("Accept", "image/*")
}
}
如您所见,请求仅接受 header("Accept"、"image/*")。
但是 chrome 浏览器发送一个带有 header
的请求
Accept:image/webp,/;q=0.8
和 firefox
Accept:image/png,image/;q=0.8,/*;q=0.5
在这种情况下,当 firefox 和 chrome 发出图像请求时,它不会通过路由器。
我必须做什么,请求才能通过?我正在使用大猩猩多路复用器作为路由器。
使用 MatcherFunc 并自行检查 header,这样您就可以匹配 "image/"。
我写了一个路由函数,只接受图像请求。看下面的代码。
// Add image route paths
func addImage(path string, handler httpImageFunc, name ...string) {
//log.Println("Add image")
if len(name) > 0 {
router.Handle(path, httpImageFunc(handler)).
Methods("GET").
Headers("Accept", "image/*").
Name(name[0])
} else {
router.Handle(path, httpImageFunc(handler)).
Methods("GET").
Headers("Accept", "image/*")
}
}
如您所见,请求仅接受 header("Accept"、"image/*")。 但是 chrome 浏览器发送一个带有 header
的请求Accept:image/webp,/;q=0.8
和 firefox
Accept:image/png,image/;q=0.8,/*;q=0.5
在这种情况下,当 firefox 和 chrome 发出图像请求时,它不会通过路由器。 我必须做什么,请求才能通过?我正在使用大猩猩多路复用器作为路由器。
使用 MatcherFunc 并自行检查 header,这样您就可以匹配 "image/"。