ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

go的url解析

2022-01-26 12:00:54  阅读:156  来源: 互联网

标签:url fmt 查询 Println Host go 解析


原文链接:https://www.cnblogs.com/unqiang/p/9258668.html

对于解析url,是一个常见的场景,下面就来说这个,直接见代码:

package main  
   
import ( 
    "fmt" 
    "net/url"
    "strings"
) 
   

func main(){
    s := "postgres://user:pass@host.com:5432/path?k=v#f"
    //我们将解析这个 URL 示例,它包含了一个 scheme,认证信息,主机名,端口,路径,查询参数和片段。

    u, err := url.Parse(s)
    if err != nil {
        panic(err)
    }
    //解析这个 URL 并确保解析没有出错。

    fmt.Println(u.Scheme)
    //直接访问 scheme。

    fmt.Println(u.User)
    fmt.Println(u.User.Username())
    p, _ := u.User.Password()
    fmt.Println(p)
    //User 包含了所有的认证信息,这里调用 Username和 Password 来获取独立值。

    fmt.Println(u.Host)
    h := strings.Split(u.Host, ":")
    fmt.Println(h[0])
    fmt.Println(h[1])
    //Host 同时包括主机名和端口信息,如过端口存在的话,使用 strings.Split() 从 Host 中手动提取端口。

    fmt.Println(u.Path)
    fmt.Println(u.Fragment)
    //这里我们提出路径和查询片段信息。

    fmt.Println(u.RawQuery)
    m, _ := url.ParseQuery(u.RawQuery)
    fmt.Println(m)
    fmt.Println(m["k"][0])
    //要得到字符串中的 k=v 这种格式的查询参数,可以使用 RawQuery 函数。你也可以将查询参数解析为一个map。已解析的查询参数 map 以查询字符串为键,对应值字符串切片为值,所以如何只想得到一个键对应的第一个值,将索引位置设置为 [0] 就行了。
}

标签:url,fmt,查询,Println,Host,go,解析
来源: https://blog.csdn.net/l963937050/article/details/122698656

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有