[go] HTTP 클라이언트의 기본 설정
Go 언어에서는 net/http
패키지를 사용하여 HTTP 클라이언트를 만들고 사용할 수 있습니다. HTTP 클라이언트의 기본 설정을 관리하는 방법에 대해 알아봅시다.
기본 클라이언트 생성
먼저, 기본 HTTP 클라이언트를 생성하는 방법에 대해 알아봅시다. 다음과 같이 기본 클라이언트를 생성할 수 있습니다.
package main
import (
"net/http"
"log"
)
func main() {
client := &http.Client{}
resp, err := client.Get("https://example.com")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// Response handling...
}
위 예제에서 &http.Client{}
를 사용해 기본 클라이언트를 생성했습니다.
기본 설정 사용
기본 클라이언트를 생성한 후에 기본 설정을 적용할 수 있습니다. 이를 통해 타임아웃, 헤더, 리다이렉션 등을 설정할 수 있습니다. 아래는 타임아웃을 설정한 예제입니다.
package main
import (
"net/http"
"log"
"time"
)
func main() {
client := &http.Client{
Timeout: 5 * time.Second,
}
resp, err := client.Get("https://example.com")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// Response handling...
}
Timeout
필드를 사용하여 타임아웃을 설정했습니다.
커스텀 트랜스포트 사용
더 세밀한 설정이 필요한 경우 http.Transport
를 이용하여 커스텀 트랜스포트를 설정할 수 있습니다. 아래는 커스텀 트랜스포트를 사용한 예제입니다.
package main
import (
"net/http"
"log"
"time"
)
func main() {
tr := &http.Transport{
MaxIdleConns: 10,
IdleConnTimeout: 30 * time.Second,
DisableCompression: true,
}
client := &http.Client{
Transport: tr,
Timeout: 5 * time.Second,
}
resp, err := client.Get("https://example.com")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// Response handling...
}
위의 예제에서, http.Transport
를 사용하여 커스텀 트랜스포트를 설정했습니다.
이렇게 Go 언어에서는 기본 클라이언트를 생성하고 기본 설정을 관리하는 다양한 방법을 제공합니다.
더 많은 정보를 원하시면 공식 문서를 참조하세요.