英文:
Two results are printed when headers are used in golang
问题
这是我正在使用的代码:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", TestFunc)
http.ListenAndServe(":8080", nil)
}
func TestFunc(w http.ResponseWriter, r *http.Request) {
fmt.Println("test")
// --------------------- headers ------------------------
w.Header().Set("Accept-Charset", "utf-8")
w.Header().Set("Accept-Encoding", "gzip")
w.Header().Set("Content-Type", "text/html; charset=utf-8")
w.WriteHeader(http.StatusOK)
}
上面的代码可以正常工作,并且每次都会打印两个结果(test test)。
当我移除了头部信息后,代码可以正常工作,并且只返回 "test"。
这段代码有什么问题?
英文:
This is the code I'm working with:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", TestFunc)
http.ListenAndServe(":8080", nil)
}
func TestFunc(w http.ResponseWriter, r *http.Request) {
fmt.Println("test")
// --------------------- headers ------------------------
w.Header().Set("Accept-Charset", "utf-8")
w.Header().Set("Accept-Encoding", "gzip")
w.Header().Set("Content-Type", "text/html; charset=utf-8")
w.WriteHeader(http.StatusOK)
}
The code above works and prints two result (test test) every time.
When I remove the headers, code works fine and returns only "test".
What is the issue in this code?
答案1
得分: 2
您的浏览器可能正在请求/favicon.ico
。在请求处理程序中打印出r.URL
的值将确认这一点。
英文:
Your browser is likely requesting /favicon.ico
. Printing out the value of r.URL
in the request handler will confirm this.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论