Go 언어는 뛰어난 동시성 및 네트워크 프로그래밍 기능으로 인기가 있는 빠르고 안정적이며 간결한 프로그래밍 언어입니다. 네트워크 프로그래밍을 할 때 HTTP 요청은 프로그램 개발 과정에서 피할 수 없는 부분입니다. 이 기사에서는 Go 언어로 HTTP 요청을 만드는 방법을 소개합니다.
1. 가져오기 및 net/http 패키지
HTTP 요청 및 응답은 net/http 패키지를 통해 Go 언어로 구현됩니다. 패키지 가져오기:
import ( "net/http" )
2. GET 요청
다음 코드는 http.Get()을 사용하여 GET 요청을 보내는 방법을 보여줍니다.
resp, err := http.Get("https://www.google.com") if err != nil { //处理错误 } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { //处理错误 } fmt.Println(string(body))
이 코드가 실행되면 https://www로 전송됩니다. .google.com GET 요청을 수행하고 웹사이트의 HTML 소스 코드를 반환합니다. Get() 함수는 모든 HTTP 응답 정보(상태 코드, 응답 헤더, 응답 본문 등 포함)가 포함된 *http.Response 유형 포인터를 반환합니다. 함수가 반환될 때 응답 본문이 닫히도록 defer 문을 사용합니다.
3. POST 요청
다음 코드는 http.Post() 메서드를 사용하여 POST 요청을 보내는 방법을 보여줍니다.
values := map[string]string{ "name": "test", "email": "test@gmail.com", } data := url.Values{} for key, value := range values { data.Set(key, value) } url := "https://example.com/api" req, err := http.NewRequest("POST", url, strings.NewReader(data.Encode())) req.Header.Set("Content-Type", "application/x-www-form-urlencoded") if err != nil { //处理错误 } client := &http.Client{} resp, err := client.Do(req) if err != nil { //处理错误 } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { //处理错误 } fmt.Println(string(body))
이러한 방식으로 http.NewRequest() 함수를 사용하여 POST 요청을 생성합니다. 그런 다음 요청 헤더와 요청 본문을 설정합니다. 요청을 보낼 때 htt.Client() 객체를 사용하고 지정된 URL로 요청을 보냅니다. 코드 실행이 끝나면 성공이나 실패에 관계없이 http.Response.Body를 닫아야 합니다.
4. PUT 요청
PUT 요청과 마찬가지로 Go 언어에서 http.NewRequest()를 사용하여 PUT 요청을 보낼 수도 있습니다.
values := "{"name":"test","email":"test@gmail.com"}" url := "https://example.com/api" req, err := http.NewRequest("PUT", url, bytes.NewBuffer([]byte(values))) if err != nil { //处理错误 } client := &http.Client{} resp, err := client.Do(req) if err != nil { //处理错误 } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { //处理错误 } fmt.Println(string(body))
여기에서는 bytes.NewBuffer() 함수를 사용하여 변수 값을 변환합니다. 버퍼에 넣고 Request.Body에 넣습니다.
5. DELETE 요청
DELETE 요청은 http.Get() 함수를 사용하여 보낼 수도 있습니다.
url := "https://example.com/api?id=123" req, err := http.NewRequest("DELETE", url, nil) if err != nil { //处理错误 } client := &http.Client{} resp, err := client.Do(req) if err != nil { //处理错误 } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { //处理错误 } fmt.Println(string(body))
여기서 url 매개변수에는 삭제하려는 리소스의 ID가 포함되어 있습니다. 매개변수가 URL에 전달되면 매개변수 값이 올바르게 전달되도록 URL 인코딩이 필요합니다.
결론
Go 언어의 HTTP 요청과 응답은 net/http 패키지를 통해 구현됩니다. 이 문서에서는 이 패키지를 사용하여 GET, POST, PUT 및 DELETE 요청을 보내는 방법과 응답 결과를 처리하는 방법을 설명합니다. HTTP는 최신 웹 애플리케이션의 기초이며 이를 이해하면 HTTP 요청 및 응답을 지원하도록 애플리케이션을 확장하는 데 도움이 될 수도 있습니다.
위 내용은 골랭 http 요청의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!