Go에서 HTTP 요청 본문을 구문 분석하는 세 가지 주요 방법이 있습니다. 전체 본문을 읽으려면 io.ReadAll을 사용하세요. json.Decoder를 사용하여 JSON 본문을 구문 분석합니다. 양식 데이터를 구문 분석하려면 r.ParseMultipartForm을 사용하세요.
Golang에서 HTTP 요청 본문 구문 분석
HTTP 요청 본문 구문 분석은 클라이언트로부터 데이터를 수신하고 요청을 처리하는 데 중요합니다. Golang은 요청 본문을 구문 분석하는 여러 가지 방법을 제공하며 이 문서에서는 가장 일반적으로 사용되는 방법을 살펴보겠습니다.
파싱 방법
1. 전체 텍스트를 읽으려면 io.ReadAll
을 사용하세요.io.ReadAll
读取整个正文
func readAll(w http.ResponseWriter, r *http.Request) { body, err := io.ReadAll(r.Body) if err != nil { http.Error(w, "Could not read body", http.StatusBadRequest) return } // 使用 body ... }
2. 使用 json.Decoder
解析 JSON 正文
type RequestBody struct { Name string `json:"name"` } func decodeJSON(w http.ResponseWriter, r *http.Request) { body := RequestBody{} decoder := json.NewDecoder(r.Body) err := decoder.Decode(&body) if err != nil { http.Error(w, "Could not decode JSON body", http.StatusBadRequest) return } // 使用 body.Name ... }
3. 使用 multipart/form-data
func parseFormData(w http.ResponseWriter, r *http.Request) { if err := r.ParseMultipartForm(32 << 20); err != nil { http.Error(w, "Could not parse form data", http.StatusBadRequest) return } // 访问表单字段 r.Form }
2. JSON 텍스트를 파싱하려면 json.Decoder
를 사용하세요.
package main import ( "encoding/json" "fmt" "net/http" ) type RequestBody struct { Name string `json:"name"` } func main() { http.HandleFunc("/", handleRequest) http.ListenAndServe(":8080", nil) } func handleRequest(w http.ResponseWriter, r *http.Request) { // 解析 JSON 请求正文 body := RequestBody{} decoder := json.NewDecoder(r.Body) err := decoder.Decode(&body) if err != nil { http.Error(w, "Could not decode JSON body", http.StatusBadRequest) return } // 处理请求... // 返回响应 fmt.Fprintf(w, "Hello, %s!", body.Name) }
3. multipart/form-data
를 사용하여 양식 데이터를 구문 분석하세요
rrreee
🎜실제 사례🎜🎜🎜간단한 REST API 엔드포인트가 JSON 요청을 처리하고 응답을 반환할 수 있습니다. 🎜rrreee🎜 이러한 방법을 사용하면 Golang에서 HTTP 요청 본문을 쉽게 구문 분석하고 클라이언트로부터 필요한 데이터를 받을 수 있습니다. 🎜위 내용은 Golang에서 HTTP 요청 본문 구문 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!