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

如何在 Go 中使用来自用户输入的 URL?

如何在 Go 中使用来自用户输入的 URL?

Go
扬帆大鱼 2021-12-07 16:17:49
我几乎是 Go 语言的新手,我当前的问题是将 URL 从用户输入读取到一个变量中,以作为参数传递给 http.Get()。以下代码package mainimport (    "bufio"    "fmt"    "net/http"    "os"    "reflect")func main() {    reader := bufio.NewReader(os.Stdin)    fmt.Print("Enter URL: ")    txt, _ := reader.ReadString('\n')    fmt.Println(reflect.TypeOf(txt))   // Get object type    //url := fmt.Sprintf("http://%s",txt)    url := "http://google.com"    fmt.Println(reflect.TypeOf(url))   // Get object type    resp, err := http.Get(url)    if err != nil {        fmt.Printf("%s", err)        os.Exit(1)    } else {        fmt.Printf("%s\n", resp.Status)    }}完美运行:d:\Go\bin>get_statusEnter URL: google.comstringstring200 OK但是当我取消注释代码的第 16 行时(同时注释掉第 17 行)url := fmt.Sprintf("%s",txt)//url := "http://google.com"要使用来自用户输入的 URL,我遇到了一个问题:d:\Go\bin>get_statusEnter URL: google.comstringstringGet http://google.com: dial tcp: GetAddrInfoW: No such host is known.我的代码可能有什么问题?请抚平我的痛苦!:)更新: import "strings"加上url := strings.TrimSpace(fmt.Sprintf("http://%s",txt))修复了问题。ReadString 读取直到输入中第一次出现 delim ,返回一个包含数据的字符串,直到并包括分隔符。
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

好的,看起来ReadString包含分隔符,因此您可以TrimSpacestrings包中使用。这似乎对我有用。

url = strings.TrimSpace(url)



查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

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