本文整理汇总了Golang中github.com/pilu/traffic.ResponseWriter.WriteHeader方法的典型用法代码示例。如果您正苦于以下问题:Golang ResponseWriter.WriteHeader方法的具体用法?Golang ResponseWriter.WriteHeader怎么用?Golang ResponseWriter.WriteHeader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/pilu/traffic.ResponseWriter
的用法示例。
在下文中一共展示了ResponseWriter.WriteHeader方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RequireValidImageParameters
func RequireValidImageParameters(w traffic.ResponseWriter, r *traffic.Request) {
width, err := strconv.Atoi(r.Param("width"))
if err != nil {
w.WriteHeader(http.StatusNotFound)
return
}
height, err := strconv.Atoi(r.Param("height"))
if err != nil {
height = width
}
if (width <= 2560 && width > 0) && (height <= 2560 && height > 0) {
w.SetVar("width", width)
w.SetVar("height", height)
// log latest greatest creation
if err := ioutil.WriteFile(filepath.Join(cache_folder, "/latest"), []byte(fmt.Sprintf("%d/%d", width, height)), 0644); err != nil {
// panic is trapped by Traffic and show us a nice stack trace in the browser
// a proper error handling should be provided, but in this simple example
// it's used to remind you to always check for errors
panic(err)
}
} else {
// bad request
w.WriteHeader(http.StatusBadRequest)
w.Render("400")
}
}
示例2: CheckReleaseFilter
func CheckReleaseFilter(w traffic.ResponseWriter, r *traffic.Request) {
artistId := r.URL.Query().Get("artist_id")
releaseId := r.URL.Query().Get("release_id")
if releaseId == "" {
return
}
if !models.IsValidUUID(releaseId) {
w.WriteHeader(http.StatusBadRequest)
return
}
if artistId != "" {
if !models.IsValidUUID(artistId) {
w.WriteHeader(http.StatusBadRequest)
return
}
if artist.HasRelease(artistId, releaseId) {
return
}
ReleaseNotFoundHandler(w, r)
return
}
if !release.Exists(releaseId) {
ReleaseNotFoundHandler(w, r)
return
}
}
示例3: CheckForDdosString
func CheckForDdosString(w traffic.ResponseWriter, r *traffic.Request) {
for k, _ := range uriFragments {
fmt.Printf("Searching for %s in %s", k, r.RequestURI)
if strings.Contains(r.RequestURI, k) {
fmt.Printf("Found %s", k)
w.WriteHeader(http.StatusGatewayTimeout)
w.WriteText("connection timed out")
}
}
}
示例4: deleteHandler
func (api *ImgServerApi) deleteHandler(w traffic.ResponseWriter, r *traffic.Request) {
filename := r.URL.Query().Get("image")
err := api.imageDir.DeleteFile(filename)
api.imageCache.Remove(api.imageCache.FindKeys(filename))
if err != nil {
traffic.Logger().Print(err.Error())
w.WriteHeader(http.StatusNotFound)
} else {
w.WriteHeader(http.StatusOK)
}
}
示例5: ArtistHandler
func ArtistHandler(w traffic.ResponseWriter, r *traffic.Request) {
id := r.URL.Query().Get("id")
Artist, err := artist.ById(id)
if err == nil {
json.NewEncoder(w).Encode(Artist)
} else if err == sql.ErrNoRows {
ArtistNotFoundHandler(w, r)
} else if _, ok := err.(models.InvalidUUID); ok {
w.WriteHeader(http.StatusBadRequest)
} else {
panic(err)
}
}
示例6: listHandler
func (api *ImgServerApi) listHandler(w traffic.ResponseWriter, r *traffic.Request) {
age, err := strconv.Atoi(r.Param("age"))
if err != nil {
age = 0
}
files, err := api.imageDir.ListFiles(time.Duration(age) * time.Second)
if err != nil {
traffic.Logger().Print(err.Error())
w.WriteHeader(http.StatusInternalServerError)
} else {
w.WriteJSON(files)
}
}
示例7: ReleaseGroupsHandler
func ReleaseGroupsHandler(w traffic.ResponseWriter, r *traffic.Request) {
artistId := r.URL.Query().Get("artist_id")
ReleaseGroups, err := releasegroup.AllByArtistId(artistId)
if err == nil {
json.NewEncoder(w).Encode(ReleaseGroups)
} else if err == sql.ErrNoRows {
w.WriteHeader(http.StatusNotFound)
} else if _, ok := err.(models.InvalidUUID); ok {
w.WriteHeader(http.StatusBadRequest)
} else {
panic(err)
}
}
示例8: CheckArtistFilter
func CheckArtistFilter(w traffic.ResponseWriter, r *traffic.Request) {
artistId := r.URL.Query().Get("artist_id")
if artistId == "" {
return
}
if !models.IsValidUUID(artistId) {
w.WriteHeader(http.StatusBadRequest)
return
}
if !artist.Exists(artistId) {
ArtistNotFoundHandler(w, r)
return
}
}
示例9: RecordingsHandler
func RecordingsHandler(w traffic.ResponseWriter, r *traffic.Request) {
releaseId := r.URL.Query().Get("release_id")
var recordings []*models.Recording
var err error
recordings, err = recording.AllByReleaseId(releaseId)
if err == nil {
json.NewEncoder(w).Encode(recordings)
} else if err == sql.ErrNoRows {
w.WriteHeader(http.StatusNotFound)
} else if _, ok := err.(models.InvalidUUID); ok {
w.WriteHeader(http.StatusBadRequest)
} else {
panic(err)
}
}
示例10: ReleaseGroupHandler
func ReleaseGroupHandler(w traffic.ResponseWriter, r *traffic.Request) {
artistId := r.URL.Query().Get("artist_id")
id := r.URL.Query().Get("id")
var ReleaseGroup *models.ReleaseGroup
var err error
if artistId != "" {
ReleaseGroup, err = releasegroup.ByArtistIdAndId(artistId, id)
} else {
ReleaseGroup, err = releasegroup.ById(id)
}
if err == nil {
json.NewEncoder(w).Encode(ReleaseGroup)
} else if err == sql.ErrNoRows {
ReleaseGroupNotFoundHandler(w, r)
} else if _, ok := err.(models.InvalidUUID); ok {
w.WriteHeader(http.StatusBadRequest)
} else {
panic(err)
}
}
示例11: RecordingHandler
func RecordingHandler(w traffic.ResponseWriter, r *traffic.Request) {
releaseId := r.URL.Query().Get("release_id")
id := r.URL.Query().Get("id")
var Recording *models.Recording
var err error
if releaseId != "" {
Recording, err = recording.ByReleaseIdAndId(releaseId, id)
} else {
Recording, err = recording.ById(id)
}
if err == nil {
json.NewEncoder(w).Encode(Recording)
} else if err == sql.ErrNoRows {
RecordingNotFoundHandler(w, r)
} else if _, ok := err.(models.InvalidUUID); ok {
w.WriteHeader(http.StatusBadRequest)
} else {
panic(err)
}
}
示例12: ReleasesHandler
func ReleasesHandler(w traffic.ResponseWriter, r *traffic.Request) {
artistId := r.URL.Query().Get("artist_id")
releaseGroupId := r.URL.Query().Get("release_group_id")
var releases []*models.Release
var err error
if releaseGroupId == "" {
releases, err = release.AllByArtistId(artistId)
} else {
releases, err = release.AllByReleaseGroupId(releaseGroupId)
}
if err == nil {
json.NewEncoder(w).Encode(releases)
} else if err == sql.ErrNoRows {
ReleaseNotFoundHandler(w, r)
} else if _, ok := err.(models.InvalidUUID); ok {
w.WriteHeader(http.StatusBadRequest)
} else {
panic(err)
}
}
示例13: uploadHandler
func (api *ImgServerApi) uploadHandler(w traffic.ResponseWriter, r *traffic.Request) {
filename := r.URL.Query().Get("image")
uploadedImage, _, err := image.Decode(r.Body)
if err != nil {
w.WriteHeader(http.StatusBadRequest)
} else {
img := drawOnWhite(uploadedImage.Bounds().Size(), image.Pt(0, 0), image.Pt(0, 0), uploadedImage)
err = api.imageDir.WriteImage(filename, img, 100)
if err != nil {
traffic.Logger().Print(err.Error())
w.WriteHeader(http.StatusInternalServerError)
} else {
w.WriteHeader(http.StatusOK)
}
}
}
示例14: copyHandler
func (api *ImgServerApi) copyHandler(w traffic.ResponseWriter, r *traffic.Request) {
src := r.URL.Query().Get("src")
dst := r.URL.Query().Get("dst")
data, err := api.imageDir.ReadFile(src)
if err != nil {
w.WriteHeader(http.StatusNotFound)
return
}
err = api.imageDir.WriteFile(dst, data)
if err != nil {
traffic.Logger().Print(err.Error())
w.WriteHeader(http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusOK)
}
示例15: imageHandler
func (api *ImgServerApi) imageHandler(w traffic.ResponseWriter, r *traffic.Request) {
params := r.URL.Query()
width := toInt(params.Get("width"), 0)
height := toInt(params.Get("height"), 0)
imagefile := params.Get("image")
cacheKey := imagefile + string(width) + string(height)
modTime := api.imageDir.ModTime(imagefile)
if modTime == nil {
api.imageCache.Remove(api.imageCache.FindKeys(imagefile))
w.WriteHeader(http.StatusNotFound)
return
}
if cachedImage := api.imageCache.Get(cacheKey, *modTime); cachedImage != nil {
sendJpeg(w, cachedImage)
} else {
origImage, err := api.imageDir.ReadImage(imagefile)
if err != nil {
traffic.Logger().Print(err.Error())
w.WriteHeader(http.StatusNotFound)
} else {
semaphore <- struct{}{}
buffer := new(bytes.Buffer)
sizedImage := resizeImage(origImage, width, height, api.faceDetection)
err = jpeg.Encode(buffer, sizedImage, &jpeg.Options{95})
<-semaphore
if err != nil {
traffic.Logger().Print(err.Error())
w.WriteHeader(http.StatusInternalServerError)
} else {
data := make([]byte, buffer.Len())
buffer.Read(data)
api.imageCache.Put(cacheKey, data, *modTime)
sendJpeg(w, data)
}
}
}
}