Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Mengakses Badan Respons HTTP sebagai Rentetan dalam Go?

Bagaimanakah Saya Mengakses Badan Respons HTTP sebagai Rentetan dalam Go?

DDD
Lepaskan: 2024-12-08 07:24:16
asal
345 orang telah melayarinya

How Do I Access an HTTP Response Body as a String in Go?

Mengakses Respons HTTP sebagai Rentetan dalam Go

Apabila menghuraikan respons permintaan web, mengaksesnya sebagai rentetan boleh menjadi masalah. Pertimbangkan kod berikut:

resp, err := http.Get("http://google.hu/")
if err != nil {
    // handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
Salin selepas log masuk

Sementara kod berjaya mengambil badan tindak balas, cuba untuk melelaran padanya sebagai rentetan menggunakan untuk i:= 0; i < len(badan); i { fmt.Println( body[i] ) } menghasilkan nilai berangka dan bukannya aksara.

Kunci untuk mengakses respons sebagai rentetan terletak pada penukaran mudah:

bs := string(body)
Salin selepas log masuk

Ini penukaran menganggap badan kepingan bait sebagai urutan titik kod Unicode dan mencipta rentetan yang sepadan. Setelah ditukar, anda boleh memanipulasi bs seperti mana-mana rentetan lain.

Sebagai contoh, kod berikut menunjukkan penukaran dan manipulasi rentetan seterusnya:

var client http.Client
resp, err := client.Get(url)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

if resp.StatusCode == http.StatusOK {
    bodyBytes, err := io.ReadAll(resp.Body)
    if err != nil {
        log.Fatal(err)
    }
    bodyString := string(bodyBytes)
    fmt.Println(bodyString)
}
Salin selepas log masuk

Penukaran ini menyerlahkan perbezaan antara bait dan rentetan dalam Go. Rentetan ialah jujukan tidak boleh ubah bagi titik kod Unicode, manakala hirisan bait ialah jujukan bait mentah yang boleh diubah. Penukaran daripada kepingan bait kepada rentetan dengan berkesan mencipta rentetan baharu yang mewakili jujukan aksara yang dikodkan oleh bait.

Atas ialah kandungan terperinci Bagaimanakah Saya Mengakses Badan Respons HTTP sebagai Rentetan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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