gpt4 book ai didi

http - 在 HTTP 路由器中将未知的 URL 路径设置为错误

转载 作者:数据小太阳 更新时间:2023-10-29 03:22:25 24 4
gpt4 key购买 nike

问题:

我很难找到问题的答案,我很可能不知道如何提出这个问题。

我在使用 Go Server 时遇到问题。我对 go 编程没有任何了解,但我确实用它制作了一个服务器。该服务器将显示一个 JSON 文件,然后将拉取我现在不相关的其他 HTML 文件。这行得通。我的问题是服务器的路径。

代码

package main

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

type Event struct {
Start time.Time `json:"start"`
End time.Time `json:"end"`
Summary string `json:"summary"`
Organizer string `json:"organizer"`
MeetURL string `json:"meet_url"`
}

type EventSlice struct {
Events []Event `json:"events"`
}

func loadEvents(filename string) (EventSlice, error) {
// Open events file.
file, err := os.Open(filename)
if err != nil {
return EventSlice{}, err
}
var list EventSlice

// Parse events from json file to events slice.
err = json.NewDecoder(file).Decode(&list)
if err != nil {
fmt.Println("Displays", err)
return EventSlice{}, err
}
return list, nil
}

func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
events, err := loadEvents("json.json")
if err != nil {
fmt.Fprintln(w, err)
}

// Reduntant step in real life
err = json.NewEncoder(w).Encode(events)
if err != nil {
fmt.Fprintln(w, err)
}
}

func handler_over(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "This is my server. Hello.")
}

func main() {
http.HandleFunc("/", handler_over)
http.HandleFunc("/events", handler)
http.ListenAndServe(":8080", nil)
}

如果我去运行服务器,然后在此 url 上将路径更改为示例:http://0.0.0.0:8080/otherpath ,它仍然会显示 handler_over 的功能。这将显示一个字符串:This is my server.Hello

我必须做什么,所以当您将 URL 更改为未知路径(这不是路径)时,它将显示类似 404 Page not found 的错误。也就是说,服务器上只能识别 2 个路径:“/”路径和“/events”路径。

注意以前可能已经问过这个问题,但我不知道如何提出这个问题。任何帮助或对答案的重定向将不胜感激。

最佳答案

func handler_over(w http.ResponseWriter, r *http.Request) {
// The "/" pattern matches everything, so we need to check
// that we're at the root here.
if r.URL.Path != "/" {
http.NotFound(w, req)
return
}
fmt.Fprintf(w, "This is my server. Hello.")
}

关于http - 在 HTTP 路由器中将未知的 URL 路径设置为错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51476107/

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