Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt mein Go-HTTP-Server leere Antworten mit dem Inhaltstyp „text/plain“ zurück?

Warum gibt mein Go-HTTP-Server leere Antworten mit dem Inhaltstyp „text/plain“ zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 16:45:30537Durchsuche

Why Does My Go HTTP Server Return Empty Responses with

Beheben von JSON-Antwortproblemen in Go: Ein umfassender Leitfaden

In diesem Artikel befassen wir uns mit einem Problem, das beim Erstellen von JSON-Antworten in auftritt Gehen Sie und erkunden Sie die Lösung.

Problemstellung:

Ein Entwickler ist beim Erstellen eines einfachen HTTP-Servers und beim Verarbeiten von JSON-Antworten auf Probleme gestoßen. Trotz der Verwendung von Code, der den online gefundenen Beispielen ähnelt, wurde eine leere Antwort mit dem Inhaltstyp „text/plain“ zurückgegeben.

Analyse:

Ein sorgfältiger Vergleich von Der Code des Entwicklers und das Arbeitsbeispiel zeigten einen subtilen Unterschied: Die Variablen in der Antworttextstruktur wurden im Code des Entwicklers nicht großgeschrieben. Dies behindert den JSON-Marshalling-Prozess, da Go erfordert, dass Strukturfeldnamen exportiert (großgeschrieben) werden, um in JSON serialisiert zu werden.

Lösung:

Um dieses Problem zu beheben Problem müssen die Variablen in der ResponseCommands-Struktur großgeschrieben werden, wie unten gezeigt:

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

Mit dieser Änderung erkennt Go die Strukturfelder ordnungsgemäß und serialisiert sie in JSON. Die resultierende Antwort enthält nun die erwarteten JSON-Daten und der Inhaltstyp-Header wird korrekt auf „application/json“ gesetzt.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Go-HTTP-Server leere Antworten mit dem Inhaltstyp „text/plain“ zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn