Go で HTTP リクエストの本文を解析するには、主に 3 つの方法があります: 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.Decoder
を使用して JSON テキストを解析します
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 中国語 Web サイトの他の関連記事を参照してください。