登录
首页 >  Golang >  Go问答

解析URL的正确方法

来源:stackoverflow

时间:2024-02-14 20:51:23 136浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《解析URL的正确方法》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

当我想解析我的网址时,出现以下错误:

panic: parse "http://x:smt2fh": invalid port ":smt2fh" after host

这就是我解析它的方式:

s := "http://x:S%40mT2fH#%25PVfTA5gjCtn@host:5432/default"

u, err := url.Parse(s)
if err != nil {
    panic(err)
}

fmt.Println(u)

我希望 x 为用户,s%40mt2fh#%25pvfta5gjctn 为密码。

但错误表明这是一个无效端口。因为它不是端口。

有谁知道这个问题吗?


正确答案


您需要转义文字 #,因为它是由 url“保留”的,用于指示片段组件的开始。

转义码为 %23

func main() {
    u, err := url.Parse("http://x:S%40mT2fH%23%25PVfTA5gjCtn@host:5432/default")
    if err != nil {
        panic(err)
    }

    fmt.Println(u)
    fmt.Printf("%#v\n", u.User)
}

https://go.dev/play/p/xMHX-gvqhqj

本篇关于《解析URL的正确方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>