관리 메뉴

bright jazz music

Go - URL Checker 하나 씩 순차적 본문

Language/Go

Go - URL Checker 하나 씩 순차적

bright jazz music 2021. 2. 19. 23:25
package main

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

var errRequestFailed = errors.New("Request failed")
var results = make(map[string]string)

//func 안이 아니라서 results := map[string]string{} 형식을 쓸 수 없다
// results 라는 이름의 맵 생성과 초기화
// = var results = map[string]string{}
//이런 방식으로 맵을 초기화하지 않으면 값이 nil이 돼 버린다.

func main() {
	urls := []string{ //urls라는 이름의 string 타입 배열 생성
		"https://airbnb.com",
		"https://amazon.com",
		"https://reddit.com",
		"https://google.com",
		"https://soundcloud.com",
		"https://facebook.com",
		"https://instagram.com",
		"https://academy.nomadcoders.co/",
	}
	for _, url := range urls {
		result := "OK"
		err := hitURL(url)
		if err != nil {
			result = "FAILED"
		}
		results[url] = result
	}
	for url, result := range results {
		fmt.Println(url, result)
	}
}

func hitURL(url string) error {
	fmt.Println("Checking:", url)
	resp, err := http.Get(url)
	if err != nil || resp.StatusCode >= 400 {
		fmt.Println(err, resp.StatusCode) //resp.Status하면 이유를 출력함
		return errRequestFailed
	}
	return nil
}
Comments