亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
archive archive/tar archive/zip bufio bufio(緩存) builtin builtin(內(nèi)置包) bytes bytes(包字節(jié)) compress compress/bzip2(壓縮/bzip2) compress/flate(壓縮/flate) compress/gzip(壓縮/gzip) compress/lzw(壓縮/lzw) compress/zlib(壓縮/zlib) container container/heap(容器數(shù)據(jù)結(jié)構(gòu)heap) container/list(容器數(shù)據(jù)結(jié)構(gòu)list) container/ring(容器數(shù)據(jù)結(jié)構(gòu)ring) context context(上下文) crypto crypto(加密) crypto/aes(加密/aes) crypto/cipher(加密/cipher) crypto/des(加密/des) crypto/dsa(加密/dsa) crypto/ecdsa(加密/ecdsa) crypto/elliptic(加密/elliptic) crypto/hmac(加密/hmac) crypto/md5(加密/md5) crypto/rand(加密/rand) crypto/rc4(加密/rc4) crypto/rsa(加密/rsa) crypto/sha1(加密/sha1) crypto/sha256(加密/sha256) crypto/sha512(加密/sha512) crypto/subtle(加密/subtle) crypto/tls(加密/tls) crypto/x509(加密/x509) crypto/x509/pkix(加密/x509/pkix) database database/sql(數(shù)據(jù)庫(kù)/sql) database/sql/driver(數(shù)據(jù)庫(kù)/sql/driver) debug debug/dwarf(調(diào)試/dwarf) debug/elf(調(diào)試/elf) debug/gosym(調(diào)試/gosym) debug/macho(調(diào)試/macho) debug/pe(調(diào)試/pe) debug/plan9obj(調(diào)試/plan9obj) encoding encoding(編碼) encoding/ascii85(編碼/ascii85) encoding/asn1(編碼/asn1) encoding/base32(編碼/base32) encoding/base64(編碼/base64) encoding/binary(編碼/binary) encoding/csv(編碼/csv) encoding/gob(編碼/gob) encoding/hex(編碼/hex) encoding/json(編碼/json) encoding/pem(編碼/pem) encoding/xml(編碼/xml) errors errors(錯(cuò)誤) expvar expvar flag flag(命令行參數(shù)解析flag包) fmt fmt go go/ast(抽象語法樹) go/build go/constant(常量) go/doc(文檔) go/format(格式) go/importer go/parser go/printer go/scanner(掃描儀) go/token(令牌) go/types(類型) hash hash(散列) hash/adler32 hash/crc32 hash/crc64 hash/fnv html html html/template(模板) image image(圖像) image/color(顏色) image/color/palette(調(diào)色板) image/draw(繪圖) image/gif image/jpeg image/png index index/suffixarray io io io/ioutil log log log/syslog(日志系統(tǒng)) math math math/big math/big math/bits math/bits math/cmplx math/cmplx math/rand math/rand mime mime mime/multipart(多部分) mime/quotedprintable net net net/http net/http net/http/cgi net/http/cookiejar net/http/fcgi net/http/httptest net/http/httptrace net/http/httputil net/http/internal net/http/pprof net/mail net/mail net/rpc net/rpc net/rpc/jsonrpc net/smtp net/smtp net/textproto net/textproto net/url net/url os os os/exec os/signal os/user path path path/filepath(文件路徑) plugin plugin(插件) reflect reflect(反射) regexp regexp(正則表達(dá)式) regexp/syntax runtime runtime(運(yùn)行時(shí)) runtime/debug(調(diào)試) runtime/internal/sys runtime/pprof runtime/race(競(jìng)爭(zhēng)) runtime/trace(執(zhí)行追蹤器) sort sort(排序算法) strconv strconv(轉(zhuǎn)換) strings strings(字符串) sync sync(同步) sync/atomic(原子操作) syscall syscall(系統(tǒng)調(diào)用) testing testing(測(cè)試) testing/iotest testing/quick text text/scanner(掃描文本) text/tabwriter text/template(定義模板) text/template/parse time time(時(shí)間戳) unicode unicode unicode/utf16 unicode/utf8 unsafe unsafe
文字

  • import "net/url"

  • 概述

  • 索引

  • 示例

概述

url 包解析 URL 并實(shí)現(xiàn)查詢轉(zhuǎn)義。

索引

  • func PathEscape(s string) string

  • func PathUnescape(s string) (string, error)

  • func QueryEscape(s string) string

  • func QueryUnescape(s string) (string, error)

  • type Error

  • func (e *Error) Error() string

  • func (e *Error) Temporary() bool

  • func (e *Error) Timeout() bool

  • type EscapeError

  • func (e EscapeError) Error() string

  • type InvalidHostError

  • func (e InvalidHostError) Error() string

  • type URL

  • func Parse(rawurl string) (*URL, error)

  • func ParseRequestURI(rawurl string) (*URL, error)

  • func (u *URL) EscapedPath() string

  • func (u *URL) Hostname() string

  • func (u *URL) IsAbs() bool

  • func (u *URL) MarshalBinary() (text []byte, err error)

  • func (u *URL) Parse(ref string) (*URL, error)

  • func (u *URL) Port() string

  • func (u *URL) Query() Values

  • func (u *URL) RequestURI() string

  • func (u *URL) ResolveReference(ref *URL) *URL

  • func (u *URL) String() string

  • func (u *URL) UnmarshalBinary(text []byte) error

  • type Userinfo

  • func User(username string) *Userinfo

  • func UserPassword(username, password string) *Userinfo

  • func (u *Userinfo) Password() (string, bool)

  • func (u *Userinfo) String() string

  • func (u *Userinfo) Username() string

  • type Values

  • func ParseQuery(query string) (Values, error)

  • func (v Values) Add(key, value string)

  • func (v Values) Del(key string)

  • func (v Values) Encode() string

  • func (v Values) Get(key string) string

  • func (v Values) Set(key, value string)

示例

ParseQuery URL URL.Hostname URL.RequestURI URL.ResolveReference URL (Roundtrip) Values

文件包

url.go

func PathEscape

func PathEscape(s string) string

PathEscape 會(huì)將字符串轉(zhuǎn)義出來,以便將其安全地放置在 URL 路徑段中。

func PathUnescape

func PathUnescape(s string) (string, error)

PathUnescape 執(zhí)行 PathEscape 的逆轉(zhuǎn)換,將 %AB 轉(zhuǎn)換為字節(jié) 0xAB 。如果任何 % 之后沒有兩個(gè)十六進(jìn)制數(shù)字,它將返回一個(gè)錯(cuò)誤。

PathUnescape 與 QueryUnescape 相同,只是它不會(huì)將'+'改為''(空格)。

func QueryEscape

func QueryEscape(s string) string

QueryEscape 將字符串轉(zhuǎn)義,以便它可以安全地放置在 URL 查詢中。

func QueryUnescape

func QueryUnescape(s string) (string, error)

QueryUnescape 執(zhí)行 QueryEscape 的逆轉(zhuǎn)換,將 %AB 轉(zhuǎn)換為字節(jié) 0xAB ,將'+'轉(zhuǎn)換為''(空格)。如果任何 % 之后沒有兩個(gè)十六進(jìn)制數(shù)字,它將返回一個(gè)錯(cuò)誤。

type Error

錯(cuò)誤報(bào)告錯(cuò)誤以及導(dǎo)致錯(cuò)誤的操作和 URL 。

type Error struct {
        Op  string
        URL string
        Err error}

func (*Error) Error

func (e *Error) Error() string

func (*Error) Temporary

func (e *Error) Temporary() bool

func (*Error) Timeout

func (e *Error) Timeout() bool

type EscapeError

type EscapeError string

func (EscapeError) Error

func (e EscapeError) Error() string

type InvalidHostError

type InvalidHostError string

func (InvalidHostError) Error

func (e InvalidHostError) Error() string

type URL

URL 代表解析的 URL (技術(shù)上說,是一個(gè) URI 引用)。

代表的一般形式是:

[scheme:][//[userinfo@]host][/]path[?query][#fragment]

在方案之后不以斜線開頭的 URL 被解釋為:

scheme:opaque[?query][#fragment]

請(qǐng)注意,路徑字段以解碼形式存儲(chǔ): /%47%6f%2f 變?yōu)?/ Go / 。結(jié)果是,無法確定路徑中的哪些斜杠是原始 URL 中的斜杠,哪些是 %2f 。這種區(qū)分很少重要,但是如果是這樣,代碼不能直接使用 Path 。Parse 函數(shù)在它返回的 URL 中設(shè)置 Path 和 RawPath ,而 URL 的 String 方法通過調(diào)用 EscapedPath 方法使用 RawPath(如果它是 Path 的有效編碼)。

type URL struct {
        Scheme     string
        Opaque     string    // encoded opaque data
        User       *Userinfo // username and password information
        Host       string    // host or host:port
        Path       string    // path (relative paths may omit leading slash)
        RawPath    string    // encoded path hint (see EscapedPath method)
        ForceQuery bool      // append a query ('?') even if RawQuery is empty
        RawQuery   string    // encoded query values, without '?'
        Fragment   string    // fragment for references, without '#'}

示例

package mainimport ("fmt""log""net/url")func main() {
	u, err := url.Parse("http://bing.com/search?q=dotnet")if err != nil {
		log.Fatal(err)}
	u.Scheme = "https"
	u.Host = "google.com"
	q := u.Query()
	q.Set("q", "golang")
	u.RawQuery = q.Encode()
	fmt.Println(u)}

示例(Roundtrip)

package mainimport ("fmt""log""net/url")func main() {// Parse + String preserve the original encoding.
	u, err := url.Parse("https://example.com/foo%2fbar")if err != nil {
		log.Fatal(err)}
	fmt.Println(u.Path)
	fmt.Println(u.RawPath)
	fmt.Println(u.String())}

func Parse

func Parse(rawurl string) (*URL, error)

解析將 rawurl 解析為 URL 結(jié)構(gòu)。Rawurl 可能是相對(duì)的或絕對(duì)的。

func ParseRequestURI

func ParseRequestURI(rawurl string) (*URL, error)

ParseRequestURI 將 rawurl 解析為 URL 結(jié)構(gòu)。它假定 rawurl 是在 HTTP 請(qǐng)求中收到的,所以 rawurl 只被解釋為絕對(duì) URI 或絕對(duì)路徑。字符串 rawurl 假定沒有 #fragment 后綴。(在將 URL 發(fā)送到 Web 服務(wù)器之前,Web 瀏覽器會(huì)去除 #fragment 。)

func (*URL) EscapedPath

func (u *URL) EscapedPath() string

EscapedPath 返回 u.Path 的轉(zhuǎn)義形式。一般來說,任何路徑都有多種可能的轉(zhuǎn)義形式。EscapedPath 在 u.Path 有效轉(zhuǎn)義時(shí)返回 u.RawPath 。否則,EscapedPath 將忽略 u.RawPath 并自行計(jì)算轉(zhuǎn)義表單。 String 和 RequestURI 方法使用 EscapedPath 來構(gòu)造它們的結(jié)果。通常,代碼應(yīng)該調(diào)用 EscapedPath ,而不是直接讀取 u.RawPath 。

func (*URL) Hostname

func (u *URL) Hostname() string

主機(jī)名返回 u.Host ,沒有任何端口號(hào)。

如果主機(jī)是具有端口號(hào)的 IPv6 文本,則主機(jī)名將返回不帶方括號(hào)的 IPv6 文字。IPv6 文字可能包含區(qū)域標(biāo)識(shí)符。

示例

package mainimport ("fmt""log""net/url")func main() {
	u, err := url.Parse("https://example.org:8000/path")if err != nil {
		log.Fatal(err)}
	fmt.Println(u.Hostname())
	u, err = url.Parse("https://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:17000")if err != nil {
		log.Fatal(err)}
	fmt.Println(u.Hostname())}

func (*URL) IsAbs

func (u *URL) IsAbs() bool

IsAbs 報(bào)告 URL 是否是絕對(duì)的。絕對(duì)意味著它有一個(gè)非空的方案。

func (*URL) MarshalBinary

func (u *URL) MarshalBinary() (text []byte, err error)

func (*URL) Parse

func (u *URL) Parse(ref string) (*URL, error)

解析解析接收器上下文中的 URL 。提供的 URL 可能是相對(duì)的或絕對(duì)的。解析返回 nil ,錯(cuò)誤解析失敗,否則其返回值與 ResolveReference 相同。

func (*URL) Port

func (u *URL) Port() string

Port 返回 u.Host 的端口部分,不帶前導(dǎo)冒號(hào)。如果 u.Host 不包含端口,則 Port 返回空字符串。

func (*URL) Query

func (u *URL) Query() Values

查詢解析 RawQuery 并返回相應(yīng)的值。它默默丟棄畸形值對(duì)。要檢查錯(cuò)誤使用 ParseQuery 。

func (*URL) RequestURI

func (u *URL) RequestURI() string

RequestURI 返回在 u 的 HTTP 請(qǐng)求中使用的編碼 path?query or opaque?query 字符串。

示例

package mainimport ("fmt""log""net/url")func main() {
	u, err := url.Parse("https://example.org/path?foo=bar")if err != nil {
		log.Fatal(err)}
	fmt.Println(u.RequestURI())}

func (*URL) ResolveReference

func (u *URL) ResolveReference(ref *URL) *URL

根據(jù) RFC 3986 第5.2節(jié),ResolveReference 將絕對(duì)基 URI 的絕對(duì) URI 解析為 URI 引用。URI 參考可以是相對(duì)的或絕對(duì)的。即使返回的 URL 與基本或引用完全相同,ResolveReference 也會(huì)始終返回新的 URL 實(shí)例。如果 ref 是絕對(duì) URL ,則 ResolveReference 將忽略基礎(chǔ)并返回 ref 的副本。

示例

package mainimport ("fmt""log""net/url")func main() {
	u, err := url.Parse("../../..//search?q=dotnet")if err != nil {
		log.Fatal(err)}
	base, err := url.Parse("http://example.com/directory/")if err != nil {
		log.Fatal(err)}
	fmt.Println(base.ResolveReference(u))}

func (*URL) String

func (u *URL) String() string

字符串將 URL 重組為一個(gè)有效的 URL 字符串。結(jié)果的一般形式是以下之一:

scheme:opaque?query#fragment
scheme://userinfo@host/path?query#fragment

如果 u.Opaque 不為空,則 String 使用第一種形式; 否則它使用第二種形式。要獲取路徑,String 使用 u.EscapedPath() 。

在第二種形式中,適用下列規(guī)則:

- if u.Scheme is empty, scheme: is omitted.- if u.User is nil, userinfo@ is omitted.- if u.Host is empty, host/ is omitted.- if u.Scheme and u.Host are empty and u.User is nil,
   the entire scheme://userinfo@host/ is omitted.- if u.Host is non-empty and u.Path begins with a /,
   the form host/path does not add its own /.- if u.RawQuery is empty, ?query is omitted.- if u.Fragment is empty, #fragment is omitted.

func (*URL) UnmarshalBinary

func (u *URL) UnmarshalBinary(text []byte) error

type Userinfo

Userinfo 類型是 URL 的用戶名和密碼詳細(xì)信息的不可變封裝?,F(xiàn)有的用戶信息值保證具有用戶名設(shè)置(可能為空,如 RFC 2396 所允許的),并可選擇密碼。

type Userinfo struct {        // contains filtered or unexported fields}

func User

func User(username string) *Userinfo

用戶返回包含提供的用戶名和用戶密碼的用戶信息。

func UserPassword

func UserPassword(username, password string) *Userinfo

UserPassword 返回包含提供的用戶名和密碼的用戶信息。

此功能只應(yīng)與傳統(tǒng)網(wǎng)站一起使用。RFC 2396 警告說以這種方式解釋用戶信息“是不推薦的,因?yàn)橐悦魑男问絺鬟f驗(yàn)證信息(例如 URI )已被證明在幾乎所有已被使用的情況下都具有安全風(fēng)險(xiǎn)。”

func (*Userinfo) Password

func (u *Userinfo) Password() (string, bool)

密碼在設(shè)置時(shí)返回密碼,以及是否設(shè)置。

func (*Userinfo) String

func (u *Userinfo) String() string

字符串以 “username:password” 的標(biāo)準(zhǔn)格式返回編碼后的 userinfo 信息。

func (*Userinfo) Username

func (u *Userinfo) Username() string

Username 返回用戶名。

type Values

值將字符串鍵映射到值列表。它通常用于查詢參數(shù)和表單值。與 http.Header 映射不同,Values 映射中的鍵是區(qū)分大小寫的。

type Values map[string][]string

示例

package mainimport ("fmt""net/url")func main() {
	v := url.Values{}
	v.Set("name", "Ava")
	v.Add("friend", "Jess")
	v.Add("friend", "Sarah")
	v.Add("friend", "Zoe")// v.Encode() == "name=Ava&friend=Jess&friend=Sarah&friend=Zoe"
	fmt.Println(v.Get("name"))
	fmt.Println(v.Get("friend"))
	fmt.Println(v["friend"])}

func ParseQuery

func ParseQuery(query string) (Values, error)

ParseQuery 分析 URL 編碼的查詢字符串并返回一個(gè)映射,列出為每個(gè)鍵指定的值。ParseQuery 總是返回一個(gè)包含所有找到的有效查詢參數(shù)的非零映射;err 描述遇到的第一個(gè)解碼錯(cuò)誤,如果有的話。

預(yù)計(jì)查詢是由&符號(hào)或分號(hào)分隔的鍵=值設(shè)置列表。沒有等號(hào)的設(shè)置被解釋為設(shè)置為空值的鍵。

示例

代碼:

m, err := url.ParseQuery(`x=1&y=2&y=3;z`)if err != nil {
        log.Fatal(err)}fmt.Println(toJSON(m))

輸出:

{"x":["1"], "y":["2", "3"], "z":[""]}

func (Values) Add

func (v Values) Add(key, value string)

添加將值添加到鍵。它附加到與鍵相關(guān)的任何現(xiàn)有值。

func (Values) Del

func (v Values) Del(key string)

Del 刪除與鍵關(guān)聯(lián)的值。

func (Values) Encode

func (v Values) Encode() string

編碼將這些值編碼為按鍵排序的“URL編碼”形式("bar=baz&foo=quux")。

func (Values) Get

func (v Values) Get(key string) string

獲取與給定鍵相關(guān)的第一個(gè)值。如果沒有與該鍵關(guān)聯(lián)的值,則 Get 返回空字符串。要訪問多個(gè)值,請(qǐng)直接使用地圖。

func (Values) Set

func (v Values) Set(key, value string)

Set 將鍵設(shè)置為值。它取代了現(xiàn)有的任何值。

上一篇: 下一篇: