登录
首页 >  Golang >  Go问答

使用 Go 语言标准库函数处理程序

来源:stackoverflow

时间:2024-03-26 11:42:30 494浏览 收藏

在不使用第三方库的情况下,可以通过解析 URL 路径来获取 URL 中的路径参数。Go 语言的 `strings.Split` 函数可用于将 URL 路径分割为一个片段列表,其中包含路径参数。要获取路径参数,可以访问 `request.URL.Path`,它已进行 URL 解码。如果路径参数可能包含斜杠,可以使用 `Request.RequestURI` 和 `url.PathUnescape`。

问题内容

我有一个像 events/{id} 这样的端点及其处理程序。如何在不使用 Gorilla/Mux 的情况下获得 {id}。有哪些 GoLang 内置替代方案可以实现这一目标?需要在没有 gorilla/Mux 或其他第三方库的情况下执行此操作。我知道这可以通过 mux.Vars 完成,但不能在这里使用它。


解决方案


如果您已经设法将流量定向到处理程序,那么您可以简单地自己解析 url 路径:

func handlerfunc(w http.responsewriter, request *http.request) {
    segments := strings.split(request.url.path, "/")
    // if path is /events/id, then segments[2] will have the id
}

request.url.path 已进行 url 解码,因此如果您的参数可能包含斜杠,请改用 Request.RequestURIurl.PathUnescape

segments := strings.Split(r.RequestURI, "/")
for i := range segments {
    var err error
    segments[i], err = url.PathUnescape(segments[i])
    if err != nil {
        http.Error(w, err.Error(), http.StatusBadRequest)
        return
    }
}

今天关于《使用 Go 语言标准库函数处理程序》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>