Chu*_*uck 1 string url substring url-rewriting go
Go 中是否有一种直接的方法来修改 URL/URI,而无需使用正则表达式来提取组件(即我正在寻找一种确定性的“经过验证的”方式/方法)。
例如,我有两种类型的 URL 发送到我的应用程序:
http://wiley.coyote.acme.co/this/is/a/long/path?param1=123¶m2=456https://road.runner.acme.co/another/long/path?meep=meep我需要做的是重写 URL,以便参数列表和端点/路径完好无损,但协议从 更改为http到https(除非它已经是https),并且整个主机名/FQDN 需要更改为egghead.local。例如,上面的两个 URL 将变为:
https://egghead.local/this/is/a/long/path?param1=123¶m2=456https://egghead.local/another/long/path?meep=meep是否有可靠/成熟的方法来处理这个问题(例如最好没有正则表达式)?
使用该url包:
func toHTTPS(addr string) (string, error) {
u, err := url.Parse(addr)
if err != nil {
return "", err
}
u.Scheme = "https"
return u.String(), nil
}
Run Code Online (Sandbox Code Playgroud)
或者
func setHostname(addr, hostname string) (string, error) {
u, err := url.Parse(addr)
if err != nil {
return "", err
}
u.Host = hostname
return u.String(), nil
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3653 次 |
| 最近记录: |