Rumah  >  Artikel  >  pembangunan bahagian belakang  >  golang: Cara mengalih keluar ruang dan baris baharu dalam badan permintaan

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

WBOY
WBOYke hadapan
2024-02-06 11:00:04716semak imbas

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"
}'

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.


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)

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam