gpt4 book ai didi

go - 关于 golang HandlerFunc。我预计 404 未找到但是

转载 作者:IT王子 更新时间:2023-10-29 02:33:35 27 4
gpt4 key购买 nike

这是我的代码

  package main

import "encoding/json"
import "net/http"
import "time"
import "fmt"
import "os"

type Profile struct {
Name string
Hobbies []string
}

func main() {
http.HandleFunc("/", rootFunc)//routeSet()
err :=http.ListenAndServe(":3000", nil)
checkError(err)
}

func checkError(err error) {
if err != nil {
fmt.Println("Fatal Error", err.Error())
os.Exit(1)
}
}

func rootFunc(w http.ResponseWriter, r *http.Request) {
//fmt.Println("Request url : " + r.RequestURI)
userProfile := make(chan Profile)

go goFun(userProfile, w, r)

profile := <-userProfile
js, err := json.Marshal(profile)

if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

w.Header().Set("Content-Type", "application/json")
w.Write(js)
}
func goFun(u chan Profile, w http.ResponseWriter, r *http.Request) {
// time.Sleep(1 * time.Second)
u <- Profile{"Alex", []string{r.RequestURI, "programming"}}
}

然后我发送 http://localhost:3000/hello postman

我收到了

{
"Name": "Alex",
"Hobbies": [
"/hello",
"programming"
]
}

我预计 404 未找到,因为我只对“/”使用 HandleFunc()

但我收到了正常的结果。

........................环境。去1.6最大操作系统

........................

最佳答案

"/" 是根子树,基本上匹配所有内容。参见 https://golang.org/pkg/net/http/#ServeMux . (在做出任何假设之前,请务必查阅文档。)

关于go - 关于 golang HandlerFunc。我预计 404 未找到但是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35982751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com