Go로 get으로는 값을 받아보았는데 Post를 이용하는 방법에 대해서는 정리를 한 것이 없어서 오늘은 이것에 대해서 포스팅을 하여드립니다.
보내실 파라미터를 저는 struct로 선언을 해서 사용을 하였습니다.
아래에서 보여드리는 부분은 예시이므로 이 포스팅을 보시고 사용하실 분들은 본인들의 환경에 맞게 선언하시고 사용하시면 됩니다.
type ParamJSON struct {
UserName string `json:"UserName"`
Password string `json:"Password"`
PackageID int64 `json:"PackageId"`
Languages []int64 `json:"Languages"`
}
위와같이 보낼 파라미터에 대해서 선언을 했습니다.
그럼 post로는 어떻게 사용을 하는지 예시를 들어 보여드리겠습니다.
byteData, _ := json.Marshal(ParamJson)
=> json 인코딩
var jsonStr = []byte(string(byteData))
=> byte 배열로 변환
req, err := http.NewRequest("POST", uri, bytes.NewBuffer(jsonStr))
=> 위의 방식으로 POST 실행
req.Header.Set("X-Custom-Header", "myvalue")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("response Status:", resp.Status)
fmt.Println("response Headers:", resp.Header)
body, _ := ioutil.ReadAll(resp.Body)
=> 받아온 파라미터를 받아서 해석
위의 예시처럼 사용하시면 편하게 사용 가능하십니다. ^^
[Go Lang] Delay 줘서 함수 실행시키기 (0) | 2022.08.26 |
---|---|
[Go Log]Go Log library 사용하기 (0) | 2022.08.18 |
[Go Lang] map[sting]interface{} 형을 string으로 받는 방법 (0) | 2022.08.08 |
[Go Build] How to Go Build for linux (0) | 2022.07.13 |
[GO]MAC zsh 에 GOPATH 설정하기 (0) | 2022.07.13 |