Rumah >pembangunan bahagian belakang >Golang >permintaan golang http

permintaan golang http

王林
王林asal
2023-05-16 13:50:082785semak imbas

Golang ialah bahasa pengaturcaraan sumber terbuka, dan kemunculannya telah membuatkan ramai pembangun sangat berminat. Dari segi pembangunan web, Golang sangat mudah digunakan, menjadikan permintaan HTTP lebih mudah dan lebih dipercayai. Golang menyediakan sokongan yang baik untuk permintaan HTTP, dan permintaan HTTP boleh dibuat dengan mudah untuk mencapai tujuan tersebut. Artikel ini akan meneroka penggunaan permintaan HTTP di Golang.

1. Permintaan HTTP

HTTP (Hypertext Transfer Protocol, Hypertext Transfer Protocol) ialah protokol untuk menghantar data, menggunakan protokol TCP/IP untuk komunikasi. Ia adalah asas aplikasi Web Proses permintaan HTTP ialah: klien menghantar permintaan HTTP ke pelayan, pelayan menerima permintaan dan memproses permintaan, dan kemudian mengembalikan respons HTTP kepada klien. Permintaan HTTP terdiri daripada tiga bahagian: baris permintaan, pengepala permintaan dan isi permintaan.

  1. Baris permintaan

Baris permintaan mengandungi tiga bahagian: kaedah HTTP (GET, POST, dll.), laluan permintaan dan versi HTTP permintaan .

  1. Pengepala Permintaan

Pengepala permintaan mengandungi butiran permintaan dan boleh digunakan untuk menghantar penyemak imbas, peranti, bahasa dan maklumat lain pelanggan. Pengepala permintaan biasa termasuk Ejen Pengguna, Bahasa Terima, dsb.

  1. Badan permintaan

Badan permintaan mengandungi data untuk dihantar ke pelayan, seperti kandungan yang diisi semasa menghantar borang, dsb.

2. Permintaan HTTP di Golang

Di Golang, permintaan HTTP dilaksanakan melalui pakej net/http terbina dalam, yang menyediakan cara mudah untuk mencipta klien HTTP. net/http Pakej ini menyediakan lapisan untuk klien TCP dan HTTP. Dengan itu, anda boleh membuat permintaan HTTP dan mengendalikan respons HTTP dengan mudah. Golang mempunyai struktur http.Client terbina dalam yang boleh digunakan untuk membuat permintaan HTTP.

http.Client menyediakan fungsi alat NewRequest() untuk membuat permintaan HTTP. Fungsi ini menerima tiga parameter: kaedah HTTP (GET, POST, dll.), URL yang diminta dan badan permintaan. Badan permintaan boleh menjadi nilai jenis io.Antara muka Pembaca, atau boleh jadi nihil. Dengan menetapkan pengepala permintaan, klien boleh menghantar beberapa maklumat tambahan kepada pelayan.

Berikut ialah contoh kod yang menggunakan permintaan GET untuk mendapatkan URL dan mencetak kandungan respons:

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    // 创建一个GET请求
    req, err := http.NewRequest("GET", "https://www.baidu.com", nil)
    if err != nil {
        panic(err)
    }

    // 可以设置请求头
    req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36")

    // 创建一个http客户端
    client := &http.Client{}

    // 发送请求
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    // 读取响应体
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    fmt.Printf("%s", body)
}

Golang juga menyediakan fungsi untuk permintaan HTTP lain:

  • Head (rentetan url) (resp * http.Response, err error): Hantar permintaan HTTP HEAD ke URL dan kembalikan respons. Gunakan permintaan HEAD untuk menyemak metadata sumber (seperti kewujudan, jenis kandungan, dll.) tanpa mendapatkan semula keseluruhan sumber.
  • Dapatkan (rentetan url) (resp * http.Response, err error): Hantar permintaan HTTP GET ke URL dan kembalikan respons. Sumber pada pelayan boleh dibaca menggunakan permintaan GET.
  • Siaran (rentetan url, rentetan contentType, body io.Reader) (resp * http.Response, err error): Hantar permintaan HTTP POST ke URL dan kembalikan balasan. Fungsi ini digunakan untuk menghantar data ke pelayan (seperti input dalam borang web).
  • PostForm(rentetan url, data url.Values)(resp *http.Response, err error): Hantar permintaan HTTP POST ke URL dan kembalikan balasan. Fungsi ini juga digunakan untuk menghantar data ke pelayan (seperti input dalam borang web), kecuali ia hanya menerima nilai daripada URL dan mengekod nilai menggunakan skema pengekodan.

Dengan menggunakan fungsi yang disediakan oleh pakej http ini, anda boleh membina permintaan HTTP dengan mudah tanpa perlu menulis klien HTTP dari awal. Ambil perhatian bahawa untuk pelanggan yang berjalan lama, struktur http.Client yang dipratentukan harus digunakan dan bukannya menggunakan titik akhir pakej http global secara langsung.

3. Ringkasan

Dengan menggunakan klien HTTP terbina dalam Golang, menghantar permintaan HTTP menjadi sangat mudah dan boleh dipercayai. Sama ada permintaan GET yang mudah atau permintaan POST yang kompleks, ia boleh dilaksanakan dengan mudah melalui golang. Dengan menggunakan klien HTTP, pembangun boleh mengakses perkhidmatan web dengan mudah dan mengurus semua yang diperlukan untuk aplikasi klien. Walaupun permintaan HTTP mungkin kelihatan mudah, ia merupakan teknologi penting yang memastikan keselamatan, kebolehpercayaan dan kebolehskalaan aplikasi web dan dengan itu memberikan nilai yang hebat.

Atas ialah kandungan terperinci permintaan golang http. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:golang mendapat komenArtikel seterusnya:golang mendapat komen