dox90448
2018-03-30 21:05
浏览 336
已采纳

如何在golang中使用julienschmidt / httprouter传递两个或多个参数?

I am new to golang and using julienschmidt/httprouter for routing. based on below snippet, able to send one parameter. but I am little confused to send multiple parameters, cloud anyone helps me.

package main

import (
    "fmt"
    "github.com/julienschmidt/httprouter"
    "net/http"
    "log"
)

func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
    fmt.Fprint(w, "Welcome!
")
}

func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
    fmt.Fprintf(w, "hello, %s!
", ps.ByName("name"))
}

func main() {
    router := httprouter.New()
    router.GET("/", Index)
    router.GET("/hello/:name", Hello)

    log.Fatal(http.ListenAndServe(":8080", router))
}

图片转代码服务由CSDN问答提供 功能建议

我是golang的新手,并使用julienschmidt / httprouter进行路由。 根据以下代码段,能够发送一个 参数。 但是我很困惑发送多个参数,云服务无人问津。

 包main 
 
import(
“ fmt” 
“ github。  com / julienschmidt / httprouter“ 
” net / http“ 
” log“ 
)
 
func索引(带有http.ResponseWriter,r * http.Request,_ httprouter.Params){
 fmt.Fprint(  w,“ Welcome!
”)
} 
 
func Hello(w http.ResponseWriter,r * http.Request,ps httprouter.Params){
 fmt.Fprintf(w,“你好,%s!\  n“,ps.ByName(” name“))
} 
 
func main(){
 router:= httprouter.New()
 router.GET(” /“,Index)
 router.GET  (“ / hello /:name”,Hello)
 
 log.Fatal(http.ListenAndServe(“:8080”,路由器))
} 
   
 
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • duanbu9345 2018-03-30 21:17
    已采纳

    Just add in another parameter:

    router.GET("/hello/:first_name/:last_name", Hello)
    
    func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
        fmt.Fprintf(w, "hello, %s %s!
    ", ps.ByName("first_name"), ps.ByName("last_name"))
    }
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题