Maison  >  Article  >  développement back-end  >  Comment analyser efficacement les données multi-sources dans les requêtes HTTP avec Go ?

Comment analyser efficacement les données multi-sources dans les requêtes HTTP avec Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 01:59:02706parcourir

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

Analyser des données de fichiers et JSON à partir d'une seule requête HTTP avec Go

L'analyse de données provenant de plusieurs sources au sein d'une seule requête HTTP peut être difficile. Dans ce cas, nous recevons à la fois un fichier PDF et des données JSON en tant que parties distinctes. Pour gérer efficacement ce scénario, Go fournit le package multipart/form-data.

Solution :

La clé pour résoudre ce problème est d'utiliser r.MultipartReader() . Cette fonction renvoie un objet mime/multipart.Reader, nous permettant de parcourir chaque partie de la requête et de les traiter individuellement. Voici le code modifié :

<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>

Grâce à cette approche, nous pouvons analyser séparément le fichier PDF et les données JSON, garantissant ainsi que les deux parties de la demande sont traitées correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn