为了账号安全,请及时绑定邮箱和手机立即绑定

将特定变量添加到 api 请求的 switch 语句

将特定变量添加到 api 请求的 switch 语句

Go
富国沪深 2022-06-21 16:27:20
我正在尝试使用 switch 语句,其中将要求用户输入,并且他们的选择将被扫描到可以在 switch 语句中找到的特定变量中。一旦选择保存到变量 (p, h, i) 中,该变量将作为参数添加,如 params.Add("filter", fmt.Sprintf("hostname:%s", h)) 中所示。一旦将其中一个变量添加到 Add 方法,它们将通过 api 请求传递。我的思维过程离我很远吗?func FindHost() (*HostSearch, error) {    fmt.Println("Select from the options below:")    var choice int    fmt.Println("1. Platform")    fmt.Println("2. Hostname")    fmt.Println("3. IP")    fmt.Scanln(&choice)    switch choice {    case 1:        var p string        fmt.Println("Enter Platform name: ex Windows")        fmt.Scanln(p)    case 2:        var h string        fmt.Println("Enter hostname: ")        fmt.Scanln(h)    case 3:        var i string        fmt.Println("Enter IP")        fmt.Scanln(i)    }        params := url.Values{}    params.Add("filter", fmt.Sprintf("hostname: '%s'", h))    params.Add("filter", fmt.Sprintf("platform_name: '%s'", p))    params.Add("filter", fmt.Sprintf("IP: %s", i))    req, err := http.NewRequest("GET", <URL>+<api endpoint>+params.Encode(), nil)    req.Header.Set("Accept", "application/json")}
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

如果这只是命令行程序,您应该使用命令行参数,并且传递的任何值(一个/一对主机/IP/平台)在函数中使用它。你可以使用 golang flag。


如果你想坚持原来的程序,这就是你需要做的。


func FindHost() {

    fmt.Println("Select from the options below:")

    var choice int

    var param string

    params := url.Values{}

    fmt.Println("1. Platform")

    fmt.Println("2. Hostname")

    fmt.Println("3. IP")

    fmt.Scanf("%d", &choice)

    switch choice {

    case 1:

        fmt.Println("Enter Platform name: ex Windows")

        fmt.Scanf("%s", &param)

        params.Add("filter", fmt.Sprintf("hostname: '%s'", param))


    case 2:

        fmt.Println("Enter hostname: ")

        fmt.Scanf("%s", &param)

        params.Add("filter", fmt.Sprintf("platform_name: '%s'", param))


    case 3:

        fmt.Println("Enter IP")

        fmt.Scanf("%s", &param)

        params.Add("filter", fmt.Sprintf("IP: %s", param))


    }

    fmt.Println(fmt.Sprintf("%+v", params))

}

更新


根据最近的评论更新程序。


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信