Datei- und JSON-Daten aus einer einzigen HTTP-Anfrage mit Go analysieren
Das Parsen von Daten aus mehreren Quellen innerhalb einer einzigen HTTP-Anfrage kann eine Herausforderung sein. In diesem Fall erhalten wir sowohl eine PDF-Datei als auch JSON-Daten als separate Teile. Um dieses Szenario effektiv zu bewältigen, stellt Go das Paket multipart/form-data bereit.
Lösung:
Der Schlüssel zur Lösung dieses Problems ist die Verwendung von r.MultipartReader() . Diese Funktion gibt ein mime/multipart.Reader-Objekt zurück, das es uns ermöglicht, jeden Teil der Anfrage zu durchlaufen und sie einzeln zu verarbeiten. Hier ist der geänderte Code:
<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>
Mit diesem Ansatz können wir die PDF-Datei und die JSON-Daten separat analysieren und so sicherstellen, dass beide Teile der Anfrage korrekt verarbeitet werden.
Das obige ist der detaillierte Inhalt vonWie kann man Multi-Source-Daten in HTTP-Anfragen mit Go effektiv analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!