在Go(golang)中使用webserver显示gif图像

har*_*ive 8 web-services go web

我正在尝试使用这个简单的Go程序输出1x1透明GIF图像(在base64中预先生成),尽管我似乎无法使其正常工作.有没有人知道如何使用预先生成的base64字符串或磁盘中的文件来执行此操作?

我很感激帮助.


package main

import (
       "net/http"
       "io"
       "encoding/base64"
)

const base64GifPixel = "R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs="

func respHandler(res http.ResponseWriter, req *http.Request) {
    res.Header().Set("Content-Type","image/gif")
    output,_ := base64.StdEncoding.DecodeString(base64GifPixel)
    io.WriteString(res,string(output))
}


func main() {
    http.HandleFunc("/", respHandler)
    http.ListenAndServe(":8086", nil)
}
Run Code Online (Sandbox Code Playgroud)

Gus*_*yer 8

似乎在这里工作正常:

$ wget -q -O file.gif http://localhost:8086
$ file file.gif
file.gif: GIF image data, version 89a, 1 x 1
Run Code Online (Sandbox Code Playgroud)

你怎么验证它不工作?如果你使用网络浏览器访问它,我想它会显示一个带有透明像素的空白页面,这有点难以发现.:-)

另外,强烈建议检查错误,即使在示例代码中也是如此(示例代码很多时候会解释自己).