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

Linda Hamilton
Lepaskan: 2024-10-25 01:59:02
asal
799 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan