package main
import (
"fmt"
"io"
"log"
"net/http"
"net/url"
)
func main() {
// GET
client := &http.Client{}
// 1. query 를 host 뒤에 직접 입력
host := "https://api.coinpaprika.com/v1/tickers"
query1 := "limit=5"
endPoint := fmt.Sprintf("%s?%s", host, query1)
req, err := http.NewRequest(http.MethodGet, endPoint, nil)
if err != nil {
panic(err)
}
resp1, err := client.Do(req)
if err != nil {
panic(err)
}
bytes, _ := io.ReadAll(resp1.Body)
log.Println(string(bytes))
// 2. 기존 host 에 query 추가하기
req, err = http.NewRequest(http.MethodGet, host, nil)
q := req.URL.Query()
q.Add("limit", "5")
req.URL.RawQuery = q.Encode()
resp, err := client.Do(req)
if err != nil {
panic(err)
}
bytes, _ = io.ReadAll(resp.Body)
log.Println(string(bytes))
// 3. 새로운 url.Values 객체 생성후 엔코딩 ( 2번과 거의 동일 )
req, err = http.NewRequest(http.MethodGet, host, nil)
q = url.Values{}
q.Add("limit", "5")
req.URL.RawQuery = q.Encode()
resp, err = client.Do(req)
if err != nil {
panic(err)
}
bytes, _ = io.ReadAll(resp.Body)
log.Println(string(bytes))
}
'Go' 카테고리의 다른 글
RSA 공개키와 JWE 를 통한 Message Encryption ( 코나 API ) (0) | 2023.12.06 |
---|---|
golang gin swagger API annotation (0) | 2022.10.24 |
네이버 클라우드 플랫폼 카카오톡 알림톡 (golang) (0) | 2022.10.12 |
golang 프로토타입패턴(Prototype Pattern with golang) (0) | 2022.08.10 |
golang 빌더패턴(Builder Pattern) (0) | 2022.07.22 |