Go 언어 net/url 알아보기

오늘은 Go 언어 기본 패키지에 포함되있는 net/url로 URL을 파싱하고 수정하는 실습을 해보려 합니다.

package main

import (
	"encoding/json"
	"fmt"
	"net/url"
)

url을 다루기 위한 net/url 패키지와 json 객체를 다루기 위한 encoding/json 패키지를 가져오고, 출력을 위한 fmt 패키지도 같이 가져옵니다.

func main() {
	value := url.Values{}
	value.Set("name", "go")
	value.Add("friend", "c")
	value.Add("friend", "java")
	value.Add("friend", "python")
	fmt.Println(value.Encode())

url의 퉈리 스트링에 값을 넣어서 인코딩하여 출력할 수 있습니다.

	parseValue, _ := url.ParseQuery(`name=go&friend=c++&friend=java;ect`)
	jsonByte, _ := json.Marshal(parseValue)
	fmt.Println(string(jsonByte))

기존에 작성되있는 쿼리 스트링을 json으로 불러와서 출력할 수 있습니다.

	url, _ := url.Parse("http://golang.org")
	url.Scheme = "https"
	url.Host = "google.com"
	queryValue := url.Query()
	queryValue.Set("q", "golang")
	url.RawQuery = queryValue.Encode()
	fmt.Println(url)
}

url을 파싱해서 스키마와 호스트를 원하는 대로 변경하고, 쿼리 스트링도 추가할 수 있습니다.

Written on October 29, 2018