我几乎是 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
包含分隔符,因此您可以TrimSpace
从strings
包中使用。这似乎对我有用。
url = strings.TrimSpace(url)
- 1 回答
- 0 关注
- 150 浏览
添加回答
举报
0/150
提交
取消