2017-09-05 11 views
1

私はそれを探してみましたが、すでに回答している質問は見つかりませんでした。GoでURLを取得する方法

GoのURLのホスト部分を取得するにはどうすればよいですか?

たとえば、

ユーザがアドレスバーにhttp://localhost:8080と入力した場合、URLから「localhost」を抽出します。

答えて

1

Goには、あなたのためにできるライブラリが組み込まれています。

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/#

+0

上記の例では、どのように私は、現在を得るのですかユーザーがページにアクセスするために入力したURL? – abel

+0

これはあなたのサーバーの書き方によって異なります。 しかし、おそらくこの回答はあなたを助けるかもしれません:https://stackoverflow.com/a/24519179/170961 – matiit

2

あなたは次の操作を行うことができます*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は素晴らしいドキュメントを持っているをインポートする必要があり、最後の1が動作するために、私はまた、見てみる推薦:net/http

関連する問題