Maison >développement back-end >Golang >Pourquoi mon serveur HTTP Go renvoie-t-il des réponses vides avec le type de contenu « text/plain » ?

Pourquoi mon serveur HTTP Go renvoie-t-il des réponses vides avec le type de contenu « text/plain » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 16:45:30617parcourir

Why Does My Go HTTP Server Return Empty Responses with

Résoudre les problèmes de réponse JSON dans Go : un guide complet

Dans cet article, nous aborderons un problème rencontré lors de la création de réponses JSON dans Allez explorer la solution.

Énoncé du problème :

Un développeur a rencontré des problèmes lors de la création d'un serveur HTTP simple et de la gestion des réponses JSON. Malgré l'utilisation d'un code similaire aux exemples trouvés en ligne, une réponse vide avec un type de contenu « text/plain » a été renvoyée.

Analyse :

Une comparaison minutieuse de le code du développeur et l'échantillon de travail ont révélé une différence subtile : les variables dans la structure du corps de la réponse n'étaient pas en majuscule dans le code du développeur. Cela entrave le processus de marshaling JSON, car Go nécessite que les noms de champs de structure soient exportés (en majuscules) afin d'être sérialisés en JSON.

Solution :

Pour résoudre ce problème problème, les variables de la structure ResponseCommands doivent être en majuscules, comme indiqué ci-dessous :

<code class="go">type ResponseCommands struct {
    Key   string
    Value bool
}</code>

Avec cette modification, Go reconnaîtra correctement les champs de structure et les sérialisera en JSON. La réponse résultante contiendra désormais les données JSON attendues et l'en-tête de type de contenu sera correctement défini sur "application/json".

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