Maison >développement back-end >Golang >Comment obtenir les données brutes de la requête de publication http Golang à l'aide du framework gin

Comment obtenir les données brutes de la requête de publication http Golang à l'aide du framework gin

PHPz
PHPzavant
2024-02-22 12:30:17680parcourir

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

L'éditeur php Xiaoxin vous présentera comment utiliser le framework gin pour obtenir les données originales de la requête de publication http Golang. Dans Golang, le framework gin peut être utilisé pour gérer facilement les requêtes http, y compris les requêtes de publication. Grâce à l'objet Context fourni par le framework gin, les données originales de la demande de publication peuvent être facilement obtenues pour un traitement ultérieur. Ensuite, nous analyserons en détail comment implémenter cette fonction dans le framework gin, vous permettant de traiter facilement les données dans les requêtes de publication http.

Contenu de la question

J'ai reçu une demande de publication sur mon serveur avec une charge similaire à celle-ci

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

Le type de contenu est application/json. Maintenant, afin de faire quelques calculs, je veux que la charge utile dans le texte brut ressemble à ceci.

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

J'utilise le framework golang et gin mais j'essaie d'obtenir le corps de la requête comme ginctx *gin.context.request.body ou ginctx *gin.context.getrawdata(), alors je n'obtiens pas les données brutes que je veux réellement, j'obtiens le json joliment indenté, mais je veux le corps brut. S'il vous plaît, aidez-moi à l'obtenir dans Golang en utilisant le framework gin.

Solution de contournement

Veuillez noter que brut signifie non traité, ce qui est exactement ce que renvoie c.GetRawData().

Si vous souhaitez obtenir les données brutes et supprimer tous les espaces non pertinents, vous devez alors traiter les données. Par définition, le résultat du traitement ne sera plus les données originales.

Je ne suis donc pas sûr de la nature de votre demande.

  • Voulez-vous des données brutes ? Alors utilisez c.GetRawData().
  • Voulez-vous supprimer les données contenant des espaces non pertinents ? Alors utilisez 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))

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer