프로그래밍을 하다보면 HTTP GET방식으로 파일을 다운받아 저장해야할 일이 종종 있습니다. 그런떄 사용가능한 GET 방식의 간단한 파일 다운로드 예제입니다.
Go
func downloadFile(filepath string, url string) error {
// Create the file
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
// Request 객체 생성
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
//필요시 헤더 추가 가능
req.Header.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36")
// Client객체에서 Request 실행
client := &http.Client{}
rep, err := client.Do(req)
if err != nil {
return err
}
defer func() {
rep.Body.Close()
}()
// Write the body to file
_, err = io.Copy(out, rep.Body)
if err != nil {
return err
}
return nil
}