Maison >développement back-end >Golang >Pourquoi ma réponse HTTP Go renvoie-t-elle un JSON vide avec un type de contenu texte/plain ?

Pourquoi ma réponse HTTP Go renvoie-t-elle un JSON vide avec un type de contenu texte/plain ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 22:54:02256parcourir

Why Does My Go HTTP Response Return an Empty JSON with Text/Plain Content Type?

Réponses HTTP avec JSON

Lors de la création de réponses HTTP avec JSON dans Go, il est nécessaire de s'assurer que les données sont correctement formatées. Un problème qui peut survenir est une réponse vide avec un type de texte/contenu brut. Cela indique souvent un problème avec l'encodage JSON ou la structure utilisée pour représenter les données.

Dans le cas décrit dans la question, le code fourni tente d'envoyer une réponse JSON en utilisant la structure suivante :

<code class="go">type ResponseCommands struct {
    key   string
    value bool
}</code>

Cependant, comme le souligne correctement la réponse, les variables de cette structure ne sont pas exportées, ce qui signifie qu'elles commencent par des lettres minuscules. Cela peut entraîner des problèmes avec l'encodage JSON, car les clés JSON doivent être exportées (commencez par des lettres majuscules).

Pour résoudre le problème, la structure doit être modifiée pour exporter les variables :

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

De plus, il est essentiel de s'assurer que l'en-tête Content-Type est défini sur application/json avant d'écrire les données de réponse. Le code suivant met à jour la fonction de gestionnaire pour inclure ce correctif :

<code class="go">func handler(rw http.ResponseWriter, req *http.Request) {
    responseBody := ResponseCommands{"BackOff", false}

    data, err := json.Marshal(responseBody)
    if err != nil {
        http.Error(rw, err.Error(), http.StatusInternalServerError)
        return
    }
    rw.WriteHeader(200)
    rw.Header().Set("Content-Type", "application/json")
    rw.Write(data)
}</code>

En apportant ces modifications, le code doit générer correctement une réponse JSON avec le type de contenu approprié.

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