gpt4 book ai didi

http - [go]自定义服务器来处理具有特定路径的请求

转载 作者:IT王子 更新时间:2023-10-29 02:03:37 25 4
gpt4 key购买 nike

我想制作一个 api 来处理具有以下路径的请求http:\\localhost:8080\todo\something 但我需要使用自定义服务器。

这是我写的一段代码。

package main

import (
"net/http"
"fmt"
"io"
"time"
)


func myHandler(w http.ResponseWriter, req *http.Request){
io.WriteString(w, "hello, world!\n")
}


func main() {

//Custom http server
s := &http.Server{
Addr: ":8080",
Handler: http.HandlerFunc(myHandler),
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}

err := s.ListenAndServe()
if err != nil {
fmt.Printf("Server failed: ", err.Error())
}
}

受此启发post

我的处理程序接受所有请求,例如 http:localhost:8080\abchttp:localhost:8080\abc 等如何在自定义服务器中提供路径,以便它只处理与路径匹配的请求。

最佳答案

如果你想使用不同的URL路径,你必须创建一些mux,你可以创建一个,使用go提供的默认mux或者使用像gorilla<这样的第三方mux/.

以下代码是使用提供的标准 http 库编写的。

func myHandler(w http.ResponseWriter, req *http.Request){
io.WriteString(w, "hello, world!\n")
}

func main() {
mux := http.NewServeMux()
mux.HandleFunc("/todo/something", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Response"))
})

s := &http.Server{
Addr: ":8080",
Handler: mux,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
s.ListenAndServe()
}

关于http - [go]自定义服务器来处理具有特定路径的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41786677/

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