투케이2K

80. (Go Lang) [Mac Os] Go 문법 : net/http 네트워크 통신 - Get 방식 Http 요청 수행 및 응답 값 확인 본문

Go Lang (Go 언어)

80. (Go Lang) [Mac Os] Go 문법 : net/http 네트워크 통신 - Get 방식 Http 요청 수행 및 응답 값 확인

투케이2K 2024. 2. 24. 18:13

[개발 환경 설정]

개발 언어 : Go

 

[소스 코드]

package main

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

func main() {

	// ---------------------------------------------------
	// [기본 설명]
	// ---------------------------------------------------
	// "io" 패키지는 Go 에서 입출력 스트림 데이터를 처리 시 사용합니다
	// ---------------------------------------------------
	// "net/http" 패키지는 Go 에서 http 통신을 수행 시 사용됩니다
	// ---------------------------------------------------
	// 참고 사이트 : https://pkg.go.dev/net/http
	// ---------------------------------------------------

	// [HTTP 요청 주소 정의]
	REQ_URL := "https://jsonplaceholder.typicode.com/posts?userId=1&id=1"

	// [Request 객체 정의]
	req, err := http.Get(REQ_URL)
	if err != nil {
		panic(err)
	}

	// [Request 헤더 추가]
	req.Header.Add("Content-Type", "application/x-www-form-urlencoded;")

	// [Request Close]
	defer req.Body.Close()

	// [Response 데이터 읽기]
	RES_CODE := req.StatusCode // 상태 코드

	RES_BYTE, err := io.ReadAll(req.Body) // Body 데이터
	if err != nil {
		panic(err)
	}
	RES_DATA := string(RES_BYTE)

	// [로그 출력]
	fmt.Println("")
	fmt.Println("----------------------------------------------")
	fmt.Println("[로그 출력 수행]")
	fmt.Println("----------------------------------------------")
	fmt.Println("REQ_TYPE : GET")
	fmt.Println("----------------------------------------------")
	fmt.Println("REQ_URL : ", REQ_URL)
	fmt.Println("----------------------------------------------")
	fmt.Println("RES_CODE : ", RES_CODE)
	fmt.Println("----------------------------------------------")
	fmt.Println("RES_DATA : ", RES_DATA)
	fmt.Println("----------------------------------------------")
	fmt.Println("")

}
 

[결과 출력]


반응형
Comments