Heim >Backend-Entwicklung >Golang >So erhalten Sie die Rohdaten einer Golang-HTTP-Post-Anfrage mithilfe des Gin-Frameworks

So erhalten Sie die Rohdaten einer Golang-HTTP-Post-Anfrage mithilfe des Gin-Frameworks

PHPz
PHPznach vorne
2024-02-22 12:30:17681Durchsuche

如何使用gin框架获取Golang http post请求的原始数据

Der PHP-Editor Xiaoxin stellt Ihnen vor, wie Sie das Gin-Framework verwenden, um die Originaldaten der Golang-HTTP-Post-Anfrage zu erhalten. In Golang kann das Gin-Framework verwendet werden, um HTTP-Anfragen, einschließlich Post-Anfragen, bequem zu verarbeiten. Über das vom Gin-Framework bereitgestellte Kontextobjekt können die Originaldaten in der Post-Anfrage problemlos für die spätere Verarbeitung abgerufen werden. Als Nächstes analysieren wir im Detail, wie diese Funktion im Gin-Framework implementiert wird, sodass Sie Daten in HTTP-Post-Anfragen problemlos verarbeiten können.

Frageninhalt

Ich habe auf meinem Server eine Post-Anfrage mit einer ähnlichen Auslastung erhalten

{       "amount": 10000,
        "amount_due": 0,
        "amount_paid": 10000,
        "attempts": 1,
}

Der Inhaltstyp ist application/json. Um nun einige Berechnungen durchführen zu können, möchte ich, dass die Nutzlast im Rohtext so aussieht.

{"amount":10000,"amount_due":0,"amount_paid":10000,"attempts":1} 
No space and no new line

Ich verwende das Golang- und Gin-Framework, versuche aber, den Anforderungstext wiederherzustellen ginctx *gin.context.request.body oder ginctx *gin.context.getrawdata(), dann bekomme ich nicht die Rohdaten, die ich eigentlich will, ich bekomme schön eingerückten JSON, aber ich will den Rohkörper. Bitte helfen Sie mir, wie ich es mit dem Gin-Framework in Golang bekomme.

Workaround

Bitte beachten Sie, dass raw nicht verarbeitet bedeutet, was genau das ist, was c.GetRawData() zurückgibt.

Wenn Sie die Rohdaten abrufen und alle irrelevanten Leerzeichen entfernen möchten, müssen Sie die Daten verarbeiten. Das Ergebnis der Verarbeitung sind per Definition nicht mehr die Originaldaten.

Ich bin mir also nicht sicher, was Ihr Anliegen ist.

  • Möchten Sie Rohdaten? Dann verwenden Sie c.GetRawData().
  • Möchten Sie Daten mit irrelevanten Leerzeichen entfernen? Dann verwenden Sie json.Compact.
raw, err := c.GetRawData()
if err != nil {
    return err
}
var buf bytes.Buffer
if err := json.Compact(&buf, raw); err != nil {
    return err
}
data := buf.Bytes()
fmt.Println(string(data))

Das obige ist der detaillierte Inhalt vonSo erhalten Sie die Rohdaten einer Golang-HTTP-Post-Anfrage mithilfe des Gin-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen