티스토리 뷰
반응형

Go 언어로 HTTP 요청 보내기
1. GET 요청 보내기
아래 코드는 Go에서 net/http 패키지를 사용하여 GET 요청을 보내는 방법을 보여줍니다.
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
// GET 요청을 보낼 URL
url := "https://api.github.com"
// HTTP GET 요청을 보냅니다
response, err := http.Get(url)
if err != nil {
log.Fatalf("Failed to make GET request: %v", err)
}
defer response.Body.Close() // 함수 종료 시 응답 본문을 닫습니다
// 응답 상태 코드 출력
fmt.Println("Response Status:", response.Status)
// 응답 본문을 읽고 출력합니다
body, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatalf("Failed to read response body: %v", err)
}
fmt.Println("Response Body:", string(body))
}
2. POST 요청 보내기
아래 코드는 POST 요청을 보내는 예시입니다. 이 예제에서는 JSON 데이터를 요청 본문에 포함시킵니다.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
// POST 요청을 보낼 URL
url := "https://httpbin.org/post"
// 요청 본문에 포함할 데이터
requestData := map[string]string{
"name": "John Doe",
"email": "john.doe@example.com",
}
// 데이터 인코딩
jsonData, err := json.Marshal(requestData)
if err != nil {
log.Fatalf("Failed to marshal request data: %v", err)
}
// HTTP POST 요청을 보냅니다
response, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
if err != nil {
log.Fatalf("Failed to make POST request: %v", err)
}
defer response.Body.Close() // 함수 종료 시 응답 본문을 닫습니다
// 응답 상태 코드 출력
fmt.Println("Response Status:", response.Status)
// 응답 본문을 읽고 출력합니다
body, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatalf("Failed to read response body: %v", err)
}
fmt.Println("Response Body:", string(body))
}
코드 설명
GET 요청 예제:
http.Get(url)함수를 사용하여 GET 요청을 보냅니다.response.Body를 사용하여 응답 본문을 읽고,ioutil.ReadAll로 전체 본문을 문자열로 변환하여 출력합니다.
POST 요청 예제:
json.Marshal을 사용하여 데이터를 JSON 형식으로 변환합니다.http.Post(url, "application/json", bytes.NewBuffer(jsonData))함수를 사용하여 POST 요청을 보냅니다.- 응답 상태 코드와 본문을 출력합니다.
이 예제 코드를 통해 Go에서 HTTP 요청을 보내는 방법을 이해할 수 있습니다. 추가적인 요청 설정이 필요한 경우 http.NewRequest와 http.Client를 사용하여 더 세부적인 제어가 가능합니다.
반응형
'프로그래밍 > golang' 카테고리의 다른 글
| go에서 fmt 패키지는 뭘까? (0) | 2024.09.13 |
|---|---|
| go언어로 json파싱해보기 (0) | 2024.09.13 |
| Go언어가 C언어에 비해 좋은 점은 뭘까? (0) | 2024.09.13 |
| GO언어 자료형에 대해 설명해보자 (0) | 2024.09.13 |
| mac에서 go 개발환경 만들어보기 (1) | 2024.09.13 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래밍
- Spring
- ios
- Python
- reactjs
- MacOS
- JavaScript
- ChatGPT
- Frontend
- 내집마련
- 카톡업데이트
- 생각
- 개발자
- golang
- 부동산
- react
- 카카오톡
- 주식투자
- 부동산분석
- openai
- AI
- Java
- Backend
- 재테크
- SWiFT
- go
- HTML
- CSS
- Linux
- 오리역
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
글 보관함