Maison >développement back-end >Golang >Analyser le corps de la requête HTTP dans Golang

Analyser le corps de la requête HTTP dans Golang

WBOY
WBOYoriginal
2024-06-02 16:39:01694parcourir

Il existe trois manières principales d'analyser le corps d'une requête HTTP dans Go : Utilisez io.ReadAll pour lire l'intégralité du corps. Utilisez json.Decoder pour analyser le corps JSON. Utilisez r.ParseMultipartForm pour analyser les données du formulaire.

在 Golang 中解析 HTTP 请求正文

Parsing du corps de la requête HTTP dans Golang

L'analyse du corps de la requête HTTP est cruciale pour recevoir les données du client et traiter la demande. Golang propose plusieurs méthodes pour analyser le corps de la requête, et cet article explorera les méthodes les plus couramment utilisées.

Méthode d'analyse

1. Utilisez io.ReadAll pour lire l'intégralité du texteio.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. Utilisez json.Decoder pour analyser le texte 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. Utilisez multipart/form-data pour analyser les données du formulaire

rrreee

🎜Cas pratique 🎜🎜🎜Un simple point de terminaison d'API REST peut gérer les requêtes JSON et renvoyer des réponses : 🎜rrreee🎜 En utilisant ces méthodes, vous pouvez facilement analyser le corps de la requête HTTP dans Golang et recevoir les données requises du client. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn