Golang net/url.URL.ResolveReference() function example

package net/url

Golang net/url.URL.ResolveReference() function usage example

 package main

 import (
  "fmt"
  "net/url"
 )

 func main() {

  baseURL := "http://search.com/?a=b"

  parsedURL, err := url.Parse(baseURL)
  if err != nil {
 panic(err)
  }

  relativeURL, _ := url.Parse("?q=socketloop.com")

  fmt.Println(parsedURL)

  fmt.Println("Resolved Reference - Relative : ", parsedURL.ResolveReference(relativeURL))

  absoluteURL, _ := url.Parse("c=d")

  fmt.Println("Resolved Reference - Absolute : ", parsedURL.ResolveReference(absoluteURL))

  absoluteURL2, _ := url.Parse("http://search.com?c=d")

  fmt.Println("Resolved Reference - Absolute : ", parsedURL.ResolveReference(absoluteURL2)) // see the diff? use carefully

 }

Output :

http://search.com/?a=b

Resolved Reference - Relative : http://search.com/?q=socketloop.com

Resolved Reference - Absolute : http://search.com/c=d

Resolved Reference - Absolute : http://search.com?c=d

References :

http://golang.org/pkg/net/url/#URL.ResolveReference

Advertisement