Dalam pembangunan web moden, permintaan HTTP adalah bahagian penting Pada masa yang sama, dalam bahasa Go, terdapat pakej HTTP yang sangat mudah tersedia Melalui pakej ini, kami boleh menghantar permintaan HTTP dengan mudah. Tetapi dalam beberapa kes, kami mungkin memerlukan fungsi yang lebih maju, seperti menetapkan pengepala permintaan, menetapkan tamat masa, dsb. Dalam kes ini, kami memerlukan kawalan yang lebih terperinci ke atas permintaan HTTP. Dalam bahasa Go, penyelesaian yang popular ialah menggunakan perpustakaan permintaan HTTP pihak ketiga, seperti "go-httpclient", "go-resty", dsb. Dalam artikel ini, kami akan memperkenalkan "goutils", perpustakaan permintaan HTTP yang ringan dan menunjukkan cara menghantar permintaan HTTP dan mengawal butiran permintaan HTTP melaluinya.
Pertama, kita perlu memasang perpustakaan "goutils" menggunakan Modul Go:
go get github.com/guonaihong/goutils
Selepas pemasangan selesai, kita boleh mula menggunakan "goutils" untuk menghantar permintaan HTTP. Berikut ialah contoh mudah:
package main import ( "fmt" "github.com/guonaihong/goutils" ) func main() { url := "https://www.baidu.com" resp, err := goutils.Request("GET", url, nil, nil, nil) if err != nil { fmt.Println(err) return } fmt.Println(string(resp)) }
Dalam kod di atas, kami mula-mula mentakrifkan URL, dan kemudian menggunakan fungsi "Permintaan" "goutils" untuk menghantar permintaan HTTP. Parameter pertama fungsi "Permintaan" ialah kaedah permintaan HTTP (GET, POST, PUT, DELETE, dll.), dan parameter kedua ialah alamat URL. Parameter ketiga ialah Badan permintaan HTTP Dalam contoh ini, kami tidak menggunakan Badan, jadi nilai nol (tiada) diluluskan. Parameter keempat ialah pengepala permintaan HTTP Juga dalam contoh ini, kami tidak menetapkan sebarang pengepala, jadi nilai nol (tiada) telah diluluskan. Parameter terakhir ialah konfigurasi permintaan HTTP Contohnya, kita boleh menggunakan parameter ini untuk menetapkan tamat masa sambungan TCP, tamat masa respons HTTP, dsb. Dalam contoh ini, kami juga belum menetapkan sebarang konfigurasi, jadi kami memberikan nilai nol (nihil).
Selepas menghantar permintaan HTTP, kami akan mendapat respons daripada pelayan. Dalam contoh ini, kami menukar respons kepada rentetan dan mencetaknya.
Apabila kami memerlukan kefungsian yang lebih maju, kami boleh mencipta klien HTTP tersuai dengan menghantar parameter "goutils.HttpOptions" kepada fungsi "NewHttpClient" bagi "goutils". Parameter ini mengandungi satu siri sifat, seperti tamat masa, proksi, dsb., yang melaluinya kami boleh mengawal butiran permintaan HTTP. Berikut ialah contoh menggunakan "goutils" untuk menyesuaikan klien HTTP:
package main import ( "fmt" "github.com/guonaihong/goutils" ) func main() { url := "https://www.baidu.com" options := &goutils.HttpOptions{ Timeout: 100, // TCP连接超时时间 ConnectTimeout: 100, // HTTP响应超时时间 Proxy: "http://127.0.0.1:1080", // 代理 Header: map[string][]string{ "User-Agent": {"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}, "Accept": {"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, "Accept-Charset":{"UTF-8"}, }, } client := goutils.NewHttpClient(options) resp, err := client.Request("GET", url, nil, nil) if err != nil { fmt.Println(err) return } fmt.Println(string(resp)) }
Dalam contoh ini, kami mula-mula mentakrifkan "url", dan kemudian menyesuaikan sifat klien HTTP melalui "goutils.HttpOptions " . Kami menetapkan tamat masa, proksi dan pengepala permintaan supaya kami boleh mempunyai kawalan yang lebih baik ke atas butiran permintaan HTTP. Kemudian, kami menghantar permintaan HTTP berdasarkan klien HTTP tersuai ini.
Ringkasan
Dalam artikel ini, kami memperkenalkan "goutil", perpustakaan permintaan HTTP yang ringan dan menunjukkan cara menggunakannya untuk menghantar permintaan HTTP dan mengawal butiran permintaan HTTP . Anda boleh menghantar permintaan HTTP dengan mudah menggunakan perpustakaan "goutils", dan anda boleh mempunyai kawalan yang lebih lanjut ke atas permintaan HTTP dengan menyesuaikan klien HTTP. Jika anda perlu menghantar permintaan HTTP atau mempunyai kawalan yang lebih terperinci ke atas permintaan HTTP, maka "goutil" mungkin merupakan pilihan yang baik untuk anda.
Atas ialah kandungan terperinci golang http meminta enkapsulasi dan penggunaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!