티스토리 뷰

반응형

Go 언어로 HTTP 요청 보내기

1. GET 요청 보내기

아래 코드는 Go에서 net/http 패키지를 사용하여 GET 요청을 보내는 방법을 보여줍니다.

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    // GET 요청을 보낼 URL
    url := "https://api.github.com"

    // HTTP GET 요청을 보냅니다
    response, err := http.Get(url)
    if err != nil {
        log.Fatalf("Failed to make GET request: %v", err)
    }
    defer response.Body.Close() // 함수 종료 시 응답 본문을 닫습니다

    // 응답 상태 코드 출력
    fmt.Println("Response Status:", response.Status)

    // 응답 본문을 읽고 출력합니다
    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        log.Fatalf("Failed to read response body: %v", err)
    }
    fmt.Println("Response Body:", string(body))
}

2. POST 요청 보내기

아래 코드는 POST 요청을 보내는 예시입니다. 이 예제에서는 JSON 데이터를 요청 본문에 포함시킵니다.

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    // POST 요청을 보낼 URL
    url := "https://httpbin.org/post"

    // 요청 본문에 포함할 데이터
    requestData := map[string]string{
        "name":  "John Doe",
        "email": "john.doe@example.com",
    }

    // 데이터 인코딩
    jsonData, err := json.Marshal(requestData)
    if err != nil {
        log.Fatalf("Failed to marshal request data: %v", err)
    }

    // HTTP POST 요청을 보냅니다
    response, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
    if err != nil {
        log.Fatalf("Failed to make POST request: %v", err)
    }
    defer response.Body.Close() // 함수 종료 시 응답 본문을 닫습니다

    // 응답 상태 코드 출력
    fmt.Println("Response Status:", response.Status)

    // 응답 본문을 읽고 출력합니다
    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        log.Fatalf("Failed to read response body: %v", err)
    }
    fmt.Println("Response Body:", string(body))
}

코드 설명

  • GET 요청 예제:

    • http.Get(url) 함수를 사용하여 GET 요청을 보냅니다.
    • response.Body를 사용하여 응답 본문을 읽고, ioutil.ReadAll로 전체 본문을 문자열로 변환하여 출력합니다.
  • POST 요청 예제:

    • json.Marshal을 사용하여 데이터를 JSON 형식으로 변환합니다.
    • http.Post(url, "application/json", bytes.NewBuffer(jsonData)) 함수를 사용하여 POST 요청을 보냅니다.
    • 응답 상태 코드와 본문을 출력합니다.

이 예제 코드를 통해 Go에서 HTTP 요청을 보내는 방법을 이해할 수 있습니다. 추가적인 요청 설정이 필요한 경우 http.NewRequesthttp.Client를 사용하여 더 세부적인 제어가 가능합니다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함