A.52. URL Parsing
Data string berisi informasi URL bisa dikonversi ke tipe data url.URL
. Dengan menggunakan tipe url.URL
, akan ada banyak informasi yang bisa kita dapatkan dengan mudah, di antaranya seperti jenis protokol yang digunakan, path yang diakses, query, dan lainnya.
Berikut adalah contoh sederhana konversi string ke url.URL
.
package main
import "fmt"
import "net/url"
func main() {
var urlString = "http://kalipare.com:80/hello?name=john wick&age=27"
var u, e = url.Parse(urlString)
if e != nil {
fmt.Println(e.Error())
return
}
fmt.Printf("url: %s\n", urlString)
fmt.Printf("protocol: %s\n", u.Scheme) // http
fmt.Printf("host: %s\n", u.Host) // kalipare.com:80
fmt.Printf("path: %s\n", u.Path) // /hello
var name = u.Query()["name"][0] // john wick
var age = u.Query()["age"][0] // 27
fmt.Printf("name: %s, age: %s\n", name, age)
}
Fungsi url.Parse()
digunakan untuk parsing string ke bentuk url. Fungsi ini mengembalikan 2 data, variabel objek bertipe url.URL
dan error (jika ada). Lewat variabel objek tersebut pengaksesan informasi url akan menjadi lebih mudah, contohnya seperti nama host bisa didapatkan lewat u.Host
, protokol lewat u.Scheme
, dan lainnya.
Selain itu, query yang ada pada url akan otomatis diparsing juga, menjadi bentuk map[string][]string
, dengan key adalah nama elemen query, dan value array string yang berisikan value elemen query.