共计 836 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | 使用 Golang 实现,如果 url 没有 http 前缀,则给其加上前缀。 |
题目
修改 fetch 这个范例,如果输入的 url 参数没有 http:// 前缀的话,为这个 url 加上该前缀。你可能会用到 strings.HasPrefix 这个 函数。
题目解决思路
我们只需要使用 strings.HasPrefix 判断 url 是否有 http 前缀,如果没有,那么就用 字符串拼接 在 url 前面加上前缀。
代码具体实现
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {fmt.Println("嗨客网 (www.haicoder.net)")
for _, url := range os.Args[1:] {if !strings.HasPrefix(url, "http://") {url = strings.Join([]string{"http://", url}, "")
}
resp, err := http.Get(url)
if err != nil {fmt.Fprintf(os.Stderr, "fetch: %v\n", err)
os.Exit(1)
}
b, err := io.Copy(os.Stdout, resp.Body)
resp.Body.Close()
if err != nil {fmt.Fprintf(os.Stderr, "fetch: %v\n", err)
os.Exit(1)
}
fmt.Printf("%s", b)
}
}
我们输入以下命令行,开始运行程序:
go run haicoder.go www.haicoder.net
程序运行后,控制台输出如下:
这次,我们输入的 url 没有输入前缀“http”,我们可以看到,我们的程序同样输出了“嗨客网”首页的内容。这是因为,我们在程序里面使用了 if 判断 如果没有前缀,那么就使用 strings.Join 拼接一个前缀。
正文完
星哥说事-微信公众号
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)