Golang で HTTP リクエスト本文を解析する

WBOY
リリース: 2024-06-02 16:39:01
オリジナル
632 人が閲覧しました

Go で HTTP リクエストの本文を解析するには、主に 3 つの方法があります: io.ReadAll を使用して本文全体を読み取ります。 json.Decoder を使用して JSON 本文を解析します。 r.ParseMultipartForm を使用してフォーム データを解析します。

在 Golang 中解析 HTTP 请求正文

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!