golang: Cara mengalih keluar ruang dan baris baharu dalam badan permintaan

WBOY
Lepaskan: 2024-02-06 11:00:04
ke hadapan
714 orang telah melayarinya

golang: Cara mengalih keluar ruang dan baris baharu dalam badan permintaan

Kandungan soalan

Saya menggunakan rangka kerja gin untuk menulis perkhidmatan web (golang) untuk menerima parameter dalam format badan json. Saya membuat permintaan ini:

curl --location 'http://foo.bar/test' \
--header 'content-type: application/json' \
--data'{
     "a": "1",
     "b": "2"
}'
Salin selepas log masuk

Sekarang, saya telah menambah perisian tengah yang mencetak semua parameter permintaan pada fail log, yang menjalankan satu lapisan di atas pengawal. Ambil perhatian bahawa lapisan middleware tidak mengetahui jenis parameter tertentu. Apabila saya membaca badan dan mencetak log, saya mendapat hasil berikut:

[2023/06/20 11:44:38 cst] [info] (.../infra/log.info:18) request_in||traceid=xx||spanid=xxx||path=/test||body= {
     "a": "1",
     "b": "2"
}
Salin selepas log masuk

Saya menjangkakan perkara seperti ini:

[2023/06/20 11:44:38 CST] [INFO] (/infra/log.Info:18) request_in||traceid=xx||spanid=xxx||path=/test||body={"a ":"1","b":"2"}
Salin selepas log masuk

Maafkan saya: Bagaimana untuk membuang ruang dan pemisah baris dalam teks? Ambil perhatian bahawa parameter badan dalam contoh ini agak mudah, tetapi keadaan sebenar akan menjadi lebih kompleks. terima kasih.


Jawapan betul


Anda boleh menggunakan kaedah berikut untuk menggantikan ruang dan pemisah baris dalam teks.

Guna strings.replaceall()

requestbodybytes, err := c.getrawdata()
if err != nil {
  // handle this
}

body := string(requestbodybytes)
body = strings.replaceall(body, "\n", "")
body = strings.replaceall(body, " ", "")

fmt.printf("body=%v \n", body)
Salin selepas log masuk

Anda boleh menggunakan kaedah ini apabila anda perlu menukar badan permintaan dengan mengalih keluar ruang dan garisan sebelum mencapai pengawal.

Gunakan kumpulan

requestBodyBytes, err := c.GetRawData()
if err != nil {
  // Handle this
}

var data interface{}
json.Unmarshal(requestBodyBytes, &data)

marshalledBytes, err := json.Marshal(data)
if err != nil {
  // Handle this
}
fmt.Printf("body=%v \n", string(marshalledBytes))
Salin selepas log masuk

Gunakan ciri ini apabila anda hanya perlu mengalih keluar ruang dan garisan untuk rakaman.

Atas ialah kandungan terperinci golang: Cara mengalih keluar ruang dan baris baharu dalam badan permintaan. 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