Documentation
¶
Overview ¶
Package urlutil contains types and utilities for dealing with URLs.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type URL ¶
URL is a wrapper around url.URL that can marshal and unmarshal itself from text form more easily.
Example ¶
package main
import (
"encoding/json"
"fmt"
"net/url"
"github.com/AdguardTeam/golibs/netutil/urlutil"
)
// check is an error-checking helper for examples.
func check(err error) {
if err != nil {
panic(err)
}
}
func main() {
type jsonStruct struct {
Stdlib *url.URL
Util *urlutil.URL
}
const rawURL = "https://host.example:1234/path?query=1#fragment"
stdlibURL, err := url.Parse(rawURL)
check(err)
utilURL, err := urlutil.Parse(rawURL)
check(err)
v := &jsonStruct{
Stdlib: stdlibURL,
Util: utilURL,
}
data, err := json.MarshalIndent(v, "", " ")
check(err)
fmt.Printf("%s\n", data)
v = &jsonStruct{}
data = []byte(`{"Util":"` + rawURL + `"}`)
err = json.Unmarshal(data, v)
check(err)
fmt.Printf("%q\n", v.Util)
}
Output: { "Stdlib": { "Scheme": "https", "Opaque": "", "User": null, "Host": "host.example:1234", "Path": "/path", "RawPath": "", "OmitHost": false, "ForceQuery": false, "RawQuery": "query=1", "Fragment": "fragment", "RawFragment": "" }, "Util": "https://host.example:1234/path?query=1#fragment" } "https://host.example:1234/path?query=1#fragment"
func (*URL) MarshalText ¶
MarshalText implements the encoding.TextMarshaler interface for *URL.
func (*URL) UnmarshalText ¶
UnmarshalText implements the encoding.TextUnmarshaler interface for *URL.
Click to show internal directories.
Click to hide internal directories.