Rumah >pembangunan bahagian belakang >Golang >Bagaimana Menghuraikan Data Berbilang Sumber dengan Berkesan dalam Permintaan HTTP dengan Go?

Bagaimana Menghuraikan Data Berbilang Sumber dengan Berkesan dalam Permintaan HTTP dengan Go?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 01:59:02837semak imbas

How to Effectively Parse Multi-Source Data in HTTP Requests with Go?

Menghuraikan Fail dan Data JSON daripada Permintaan HTTP Tunggal dengan Go

Menghuraikan data daripada berbilang sumber dalam satu permintaan HTTP boleh mencabar. Dalam kes ini, kami menerima kedua-dua fail PDF dan data JSON sebagai bahagian yang berasingan. Untuk mengendalikan senario ini dengan berkesan, Go menyediakan pakej data berbilang bahagian/bentuk.

Penyelesaian:

Kunci untuk menyelesaikan isu ini ialah menggunakan r.MultipartReader() . Fungsi ini mengembalikan objek mime/multipart.Reader, membolehkan kami mengulangi setiap bahagian permintaan dan memprosesnya secara individu. Berikut ialah kod yang diubah suai:

<code class="go">func (s *Server) PostFileHandler(w http.ResponseWriter, r *http.Request) {
    mr, err := r.MultipartReader()
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }

    doc := Doc{}
    for {
        part, err := mr.NextPart()

        // End of parts
        if err == io.EOF {
            break
        }

        // Handle PDF 'file' part
        if part.FormName() == "file" {
            // ... PDF processing code
        }

        // Handle JSON 'doc' part
        if part.FormName() == "doc" {
            jsonDecoder := json.NewDecoder(part)
            err = jsonDecoder.Decode(&doc)
            if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
            }
            // ... JSON processing code
        }
    }

    // ... Database insertion and response handling code
}</code>

Menggunakan pendekatan ini, kami boleh menghuraikan fail PDF dan data JSON secara berasingan, memastikan kedua-dua bahagian permintaan diproses dengan betul.

Atas ialah kandungan terperinci Bagaimana Menghuraikan Data Berbilang Sumber dengan Berkesan dalam Permintaan HTTP dengan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn