> 백엔드 개발 > Golang > Golang에서 HTTP 요청 본문 구문 분석

Golang에서 HTTP 요청 본문 구문 분석

WBOY
풀어 주다: 2024-06-02 16:39:01
원래의
693명이 탐색했습니다.

Go에서 HTTP 요청 본문을 구문 분석하는 세 가지 주요 방법이 있습니다. 전체 본문을 읽으려면 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 텍스트를 파싱하려면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿