使用Go 解析來自單一HTTP 請求的檔案和JSON 資料
在單一HTTP 請求中解析來自多個來源的資料可能具有解析來自多個來源的資料可能具有解析挑戰性。在本例中,我們將同時接收 PDF 檔案和 JSON 資料作為單獨的部分。為了有效處理這種情況,Go 提供了 multipart/form-data 套件。
解決方案:
解決這個問題的關鍵是使用 r.MultipartReader() 。該函數傳回一個 mime/multipart.Reader 對象,允許我們迭代請求的每個部分並單獨處理它們。修改後的程式碼如下:
<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>
使用這種方法,我們可以分別解析 PDF 文件和 JSON 數據,確保請求的兩部分都得到正確處理。
以上是如何用Go有效解析HTTP請求中的多來源資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!