亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

golang獲取用戶輸入的幾種方式

 更新時間:2024年01月17日 09:23:04   作者:余生逆風(fēng)飛翔  
這篇文章給大家介紹了golang獲取用戶輸入的幾種方式,文中通過代碼示例給大家講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友跟著小編一起來學(xué)習(xí)吧

一、定義結(jié)構(gòu)體

type UserInfo struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
    Add  string `json:"add"`
}

type ReturnData struct {
    Message string   `json:"message"`
    Status  string   `json:"status"`
    Data    UserInfo `json:"data"`
}

二、get請求的Query方法

func getBindUser(c *gin.Context) {
    //query用來獲取用戶輸入的參數(shù)
    name := c.Query("name")
    //用來轉(zhuǎn)換用戶輸入的參數(shù)為數(shù)字
    age, _ := strconv.Atoi(c.Query("age"))
    //用來獲取用戶輸入的參數(shù),并設(shè)置默認值為 "上海"
    add := c.DefaultQuery("add", "上海")
    //結(jié)構(gòu)體實例化后與用戶輸入?yún)?shù)綁定
    userinfo := UserInfo{
        Name: name,
        Age:  age,
        Add:  add,
    }
    //結(jié)構(gòu)體實例化并接收用戶輸入的參數(shù)進行綁定,實例化有兩種方式,下面注釋的算一種,未注釋的是另一種
    // returnData := make(map[string]interface{})
    returnData := ReturnData{}
    returnData.Message = "加載配置成功!"
    returnData.Status = "200"
    returnData.Data = userinfo
    c.JSON(http.StatusOK, returnData)
    fmt.Println(returnData)
}

三、post請求

1.獲取用戶輸入?yún)?shù)的方法,并直接綁定到j(luò)son格式

func returnDataBindUser(c *gin.Context) {
    userInfo := UserInfo{}
    if err := c.ShouldBindJSON(&userInfo); err != nil {
        c.JSON(http.StatusOK, gin.H{
            "messages": "加載配置失??!",
            "status":   500,
        })
        fmt.Println("參數(shù)傳遞失敗。。。", err.Error())
    } else {
        c.JSON(http.StatusOK, userInfo)
        fmt.Printf("姓名:%s\n年齡:%d\n地址:%s\n", userInfo.Name, userInfo.Age, userInfo.Add)
    }
}

2.第二種方式就是用formdata,此函數(shù)用from-data方式獲取

四、設(shè)置token獲取

這兒設(shè)置一下token的獲取,并為用jwt方式,只是通過用戶輸入任意字符來判斷是否帶有token用來做個測試這個功能的安全是否成功

func glbloTokenIsNo(c *gin.Context) {
    //這塊兒是用戶輸入的任意字符當(dāng)做token,腳本架部分會用到j(luò)wt
    token := c.Query("token")
    //這塊兒會判斷是否為空串,字符串要用空串判斷,數(shù)字才可以用!=nil判斷
    if token == "" {
        returnData := ReturnData{
            Message: "獲取token失??!",
            Status:  "401",
        }
        c.JSON(http.StatusOK, returnData)
    }
    c.String(200, "登錄成功!")
}

五、路由分組

注:開始不懂為什么要分組,后來明白了,分組主不是用來管理路由,比如:你的訪問url特別長,像/api/user/addUser/和/api/user/deleteUser這兩個就可以將/api/app分為一組

apiGroup := r.Group("/api/user")

使用的時候就可以寫成如下這樣

//這樣apiGroup就代表/api/user了
apiGroup.POST("/addUser", returnDataBindUser)

以上就是golang獲取用戶輸入的幾種方式的詳細內(nèi)容,更多關(guān)于golang獲取用戶輸入的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go語言包和包管理詳解

    Go語言包和包管理詳解

    這篇文章主要為大家介紹了Go語言包和包管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 詳解Go 1.22 for循環(huán)的兩處重要更新

    詳解Go 1.22 for循環(huán)的兩處重要更新

    這篇文章主要詳細介紹了Go 1.22 for循環(huán)的兩處重要更新,Go 1.22 版本于 2024 年 2 月 6 日發(fā)布,引入了幾個重要的特性和改進,在語言層面上,這個版本對 for 循環(huán)進行了兩處更新,本文將會對 for 循環(huán)的兩個更新進行介紹,需要的朋友可以參考下
    2024-02-02
  • 深入理解golang chan的使用

    深入理解golang chan的使用

    本文主要介紹了golang chan的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Go實現(xiàn)凱撒密碼加密解密

    Go實現(xiàn)凱撒密碼加密解密

    這篇文章主要為大家介紹了Go實現(xiàn)凱撒密碼加密解密示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Go如何在HTTP請求中操作cookie教程詳解

    Go如何在HTTP請求中操作cookie教程詳解

    這篇文章主要為大家介紹了Go如何在HTTP請求中操作cookie教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Go1.18新特性之泛型使用三步曲(小結(jié))

    Go1.18新特性之泛型使用三步曲(小結(jié))

    本文主要介紹了Go1.18新特性之泛型,是Go1.18的新特性,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • ???????Golang實現(xiàn)RabbitMQ中死信隊列幾種情況

    ???????Golang實現(xiàn)RabbitMQ中死信隊列幾種情況

    本文主要介紹了???????Golang實現(xiàn)RabbitMQ中死信隊列幾種情況,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Golang channle管道的基本使用及快速入門

    Golang channle管道的基本使用及快速入門

    管道是Go語言中實現(xiàn)并發(fā)的一種方式,它可以在多個goroutine之間進行通信和數(shù)據(jù)交換,本文主要介紹了Golang channle管道的基本使用及快速入門,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Golang排序和查找使用方法介紹

    Golang排序和查找使用方法介紹

    排序操作和查找一樣是很多程序經(jīng)常使用的操作。盡管一個最短的快排程序只要15行就可以搞定,但是一個健壯的實現(xiàn)需要更多的代碼,并且我們不希望每次我們需要的時候都重寫或者拷貝這些代碼
    2022-12-12
  • Golang編譯器介紹

    Golang編譯器介紹

    今天小編就為大家分享一篇關(guān)于go語言編譯器的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-09-09

最新評論