阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Golang判断url前缀

38次阅读
没有评论

共计 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

程序运行后,控制台输出如下:

Golang 判断 url 前缀

这次,我们输入的 url 没有输入前缀“http”,我们可以看到,我们的程序同样输出了“嗨客网”首页的内容。这是因为,我们在程序里面使用了 if 判断 如果没有前缀,那么就使用 strings.Join 拼接一个前缀。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计836字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中