登录
首页 >  Golang >  Go问答

使用Golang将用户名和密码作为 JSON 正文传递给Post API

来源:stackoverflow

时间:2024-02-24 16:30:22 400浏览 收藏

大家好,今天本人给大家带来文章《使用Golang将用户名和密码作为 JSON 正文传递给Post API》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

使用 post api 请求,我希望接收响应的 jwt 令牌。

为此,我想将用户名密码作为 json 正文输入发送到 api。 用户名密码应以 json 负载的形式从用户处动态获取。

目前,我正在使用 strings.newreader 对用户名和密码进行硬编码,但这并不合适,因为这是一个 web 应用程序,许多用户都会使用它。

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
    "os"
    "strings"
    "time"
    "github.com/joho/godotenv"
)

var authToken string

type authorization struct {
    AuthorizationToken string `json:"authorizationToken"`
    ExpiresTimestamp   string `json:"expiresTimestamp"`
}

func main() {

    enverr := godotenv.Load(".env")

    if enverr != nil {

        fmt.Println("Error loading .env file")
        os.Exit(1)
    }
    token()
}

func token() {

    authorizationUrl := os.Getenv("authorizationUrl")

    requestBody := strings.NewReader(`

        {
            "name" : "testuser",
            "pwd" : "testpwd",
            "hName" : "hname"
        }
    `)

    response, err := http.Post(authorizationUrl, "application/json", requestBody)

    if err != nil {
        panic(err)
    }
    defer response.Body.Close()
    content, _ := ioutil.ReadAll(response.Body)

    var result authorization
    if err := json.Unmarshal(content, &result); err != nil { // Parse []byte to the go struct pointer
        fmt.Println("Can not unmarshal JSON")
    }
    authToken := result.AuthorizationToken
    fmt.Println(PrettyPrint(authToken))
}

func PrettyPrint(i interface{}) string {

    s, _ := json.MarshalIndent(i, "", "\t")
    return string(s)
}

正确答案


您可以使用http请求正文(用于post请求)

type Credentials struct {
    Username    string `json:"username"`
    Password    string `json:"password"`

}

c := Credentials{}
decoder := json.NewDecoder(r.Body)
defer r.Body.Close()

err: = decoder.Decode(&c)
if err!=nil{
  // handle it
}

// use it 
fmt.Println(c.Username, c.Password)

理论要掌握,实操不能落!以上关于《使用Golang将用户名和密码作为 JSON 正文传递给Post API》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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