Bagaimana untuk mendapatkan data mentah permintaan pos http Golang menggunakan rangka kerja gin

PHPz
Lepaskan: 2024-02-22 12:30:17
ke hadapan
662 orang telah melayarinya

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

editor php Xiaoxin akan memperkenalkan kepada anda cara menggunakan rangka kerja gin untuk mendapatkan data asal permintaan siaran http Golang. Di Golang, rangka kerja gin boleh digunakan untuk mengendalikan permintaan http dengan mudah, termasuk permintaan pos. Melalui objek Konteks yang disediakan oleh rangka kerja gin, data asal dalam permintaan pos boleh diperolehi dengan mudah untuk pemprosesan seterusnya. Seterusnya, kami akan menganalisis secara terperinci cara melaksanakan fungsi ini dalam rangka kerja gin, membolehkan anda memproses data dengan mudah dalam permintaan pos http.

Kandungan soalan

Saya menerima permintaan pos dalam pelayan saya dengan muatan yang serupa dengan ini

{       "amount": 10000,
        "amount_due": 0,
        "amount_paid": 10000,
        "attempts": 1,
}
Salin selepas log masuk

Jenis kandungan ialah aplikasi/json. Sekarang, untuk melakukan beberapa pengiraan, saya mahu muatan dalam teks mentah kelihatan seperti ini.

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

Saya menggunakan rangka kerja golang dan gin tetapi saya cuba mendapatkan badan permintaan seperti ginctx *gin.context.request.body atau ginctx *gin.context.getrawdata(), maka saya tidak mendapat data mentah yang sebenarnya saya inginkan, saya mendapat json inden yang bagus, tetapi saya mahukan badan mentah. Tolong bantu saya cara mendapatkannya dalam golang menggunakan kerangka gin.

Penyelesaian

Sila ambil perhatian bahawa mentah bermaksud tidak diproses, itulah yang dipulangkan oleh c.GetRawData().

Jika anda ingin mendapatkan data mentah dan mengalih keluar semua ruang yang tidak berkaitan, maka anda perlu memproses data tersebut. Mengikut definisi, hasil pemprosesan bukan lagi data asal.

Jadi saya tidak pasti apa permintaan anda.

  • Adakah anda mahu data mentah? Kemudian gunakan c.GetRawData().
  • Adakah anda mahu mengalih keluar data dengan ruang yang tidak berkaitan? Kemudian gunakan 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))
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan data mentah permintaan pos http Golang menggunakan rangka kerja gin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!