gpt4 book ai didi

url - 在 golang 中如何拆分 URL 并从解码组件编码回 URL。有什么包裹吗?

转载 作者:数据小太阳 更新时间:2023-10-29 03:31:16 27 4
gpt4 key购买 nike

在 golang 中如何拆分 URL 并从解码组件编码回 URL。有什么软件包可以完成这项工作吗?

net/url仅有助于解码 URL。我想修改 HOSTPORT 并重新创建 URL。我的问题源于我收到没有方括号的 IPV6:port 的情况。假设我得到 IPV6:port 格式如下:

aaa:abbb:cccc:dddd:0000:0000:00aa:bbbb:8080/static/silly.html

我想重建带有括号的 IPV6 地址的 URL。

最佳答案

我认为这是不可能的。例如,如果您得到:

2001:db8::1:80

你怎么知道IP地址是不是

2001:db8::1

或者:

2001:db8::1:80

这就是为什么 RFC 5952 的原因建议使用括号(或其他一些字符)来区分 IP 地址和端口号。

因此,如果可能的话,我建议您忽略这种模棱两可的格式。


更新

实际上,如果您确定能够区分这两个部分,您可以做任何您想做的事情,也就是当您可以准确数出字符 : 出现的 8 次时。

if strings.Count(url, ":") == 8 {
split := strings.Split(url, ":")
url = "[" + strings.Join(split[:8], ":") + "]:" + split[8]
}

但这可能不是处理这种 url 格式的最佳方法......

关于url - 在 golang 中如何拆分 URL 并从解码组件编码回 URL。有什么包裹吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23935610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com