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!