Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

net/http

http client 애플리케이션을 위한 구조체와 함수들은 net/http에서 찾을 수 있다.

간단한 URL 요청

http.NewRequest("METHOD", "URL", nil) 메서드를 이용해서 요청객체를 만들 수 있다. METHOD는 GET, POST, DELETE, PUT 등을 사용 할 수 있다.

요청 객체는 "어느 URL에 대해서 어떤 요청을 하라라는 정보"만 담고 있지, 실제 요청을 하는 건 아니다. 네트워크를 가로질러서 요청을 하기 위해서는 http.Client 객체를 만들어서 여기에 요청 객체를 실어 보내야 한다.

아래는 URL을 호출하는 가장 간단한 예제다.
package main

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

func main() {
    req, err := http.NewRequest("GET", "http://localhost:8888", nil)
    if err != nil {
        fmt.Println(err.Error())
        os.Exit(0)
    }

    client := &http.Client{}
    client.Do(req)
}
nc로 간단한 웹 서버를 띄워서 테스트해보자.
# nc -l 8888
GET / HTTP/1.1
Host: localhost:8888
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip