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" }'
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" }
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"}
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.
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)
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))
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!