[go] 멀티파트 HTTP 응답을 다루는 go 언어의 mime/multipart 패키지 활용

인터넷에서 파일을 업로드하거나 파일을 다운로드하는 경우, HTTP 요청과 응답은 대부분 멀티파트(multipart) 형식으로 전송됩니다. Golang에서는 mime/multipart 패키지를 사용하여 멀티파트 HTTP 응답을 다룰 수 있습니다. 이 패키지는 멀티파트 형식의 데이터를 파싱하고 처리하는 기능을 제공합니다.

멀티파트 응답 파싱하기

멀티파트 응답을 파싱하려면 mime/multipart 패키지를 사용하여 HTTP 응답 본문을 읽고, 파싱하여 각 파트의 데이터를 추출해야 합니다. 다음은 간단한 예제 코드입니다.

package main

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

func main() {
	// HTTP 요청 보내기
	resp, err := http.Get("http://example.com/api")
	if err != nil {
		fmt.Println("HTTP 요청 실패:", err)
		return
	}
	defer resp.Body.Close()

	// 멀티파트 리더 생성
	mr := multipart.NewReader(resp.Body, resp.Header.Get("Content-Type"))

	// 각 파트의 데이터 읽기
	for {
		p, err := mr.NextPart()
		if err == io.EOF {
			break
		}
		if err != nil {
			fmt.Println("파트 읽기 실패:", err)
			return
		}
		fmt.Println("파트 헤더:", p.Header)
		// 파트의 데이터 처리
	}
}

결론

mime/multipart 패키지를 사용하면 Golang에서 멀티파트 HTTP 응답을 효과적으로 다룰 수 있습니다. 이를 통해 파일 업로드, 다운로드 및 기타 멀티파트 형식의 데이터를 처리할 수 있습니다.

더 자세한 내용은 Golang 공식 문서를 참고하시기 바랍니다.