首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取Go中的URL

问如何获取Go中的URL
EN

Stack Overflow用户
提问于 2017-09-05 15:02:40
回答 2查看 1K关注 0票数 1

我试着查了一下,但找不到一个已经回答的问题。

如何在Go中获取URL的主机部分?

就像。

如果用户在地址栏中输入http://localhost:8080,我希望从URL中提取"localhost“。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-05 15:17:17

如果要从*http.Request中提取主机,可以执行以下操作:

func ExampleHander(w http.ResponseWriter, r *http.Request) { host := r.Host // This is your host (and will include port if specified) }

如果您只想访问没有端口部件的主机部件,可以执行以下操作:

func ExampleHandler(w http.ResponseWriter, r *http.Request) { host, port, _ := net.SplitHostPort(r.Host) }

对于最后一个工作,您还必须导入net

Go有很好的文档,我还建议您看一看:net/http

票数 3
EN

Stack Overflow用户

发布于 2017-09-05 15:11:11

Go内置了一个图书馆,可以为你做这件事。

代码语言:javascript
复制
package main
import "fmt"
import "net"
import "net/url"
func main() {
    s := "http://localhost:8080"

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

    host, _, _ := net.SplitHostPort(u.Host)
    fmt.Println(host)
}

https://golang.org/pkg/net/url/#

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46058142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档