[go] net/http 패키지를 사용한 요청과 응답 바디 다루기
목차
1. net/http 패키지 소개
net/http
패키지는 Go 언어에서 HTTP 클라이언트 및 서버를 작성하는 데 사용됩니다. 이 패키지를 활용하여 HTTP 요청을 보내거나 HTTP 서버로부터 응답을 받아올 수 있습니다.
2. HTTP 클라이언트로 요청 보내기
아래는 HTTP GET 요청을 보내고, 응답을 받아오는 예제 코드입니다.
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
resp, err := http.Get("https://api.example.com/data")
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}
3. HTTP 서버로 응답 보내기
아래는 간단한 HTTP 서버를 구성하고 응답을 보내는 예제 코드입니다.
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, World!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
4. 요청과 응답 바디 다루기
HTTP 요청이나 응답의 바디를 다룰 때에는 해당 데이터를 []byte로 읽어오거나 스트림으로 처리합니다. 복잡한 JSON 데이터나 파일 업로드 등과 같이 다양한 형태의 데이터를 다룰 수 있습니다.
5. 결론
net/http
패키지를 사용해 HTTP 클라이언트 및 서버를 작성하는 방법을 살펴보았습니다. 요청과 응답의 바디를 다루는 방법을 숙지하고, 효율적인 네트워크 프로그래밍을 할 수 있도록 더 많은 공부를 하시기 바랍니다.
이 글은 Go 공식 문서 및 A Tour of Go 등을 참고하여 작성되었습니다.