Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menetapkan pengepala permintaan HTTP di Golang

Bagaimana untuk menetapkan pengepala permintaan HTTP di Golang

PHPz
PHPzasal
2023-04-05 10:29:452623semak imbas

Golang, sebagai bahasa yang ditaip secara statik, digemari oleh ramai pembangun kerana prestasinya dalam komunikasi rangkaian. Dalam pembangunan projek sebenar, adalah keperluan yang sangat biasa untuk memulakan permintaan HTTP kepada perkhidmatan luaran. Pengepala permintaan adalah bahagian yang sangat penting dalam permintaan HTTP Artikel ini akan membincangkan cara menetapkan pengepala permintaan HTTP di Golang.

Apakah itu pengepala permintaan HTTP?

Pengepala permintaan HTTP ialah bahagian yang membawa beberapa maklumat tambahan apabila klien menghantar permintaan kepada pelayan. Pengepala permintaan biasanya terdiri daripada berbilang bahagian seperti kaedah permintaan, URI permintaan, versi protokol, medan pengepala permintaan, dll. Medan pengepala permintaan boleh membawa beberapa maklumat tambahan untuk digunakan oleh pelayan.

Medan pengepala permintaan biasanya terdiri daripada borang Nilai-Kekunci Contohnya, medan Jenis Kandungan dalam pengepala permintaan mempunyai Kunci sebagai Jenis Kandungan dan Nilai sebagai jenis kandungan yang diminta. Pengepala permintaan HTTP tidak ditetapkan Kami boleh mentakrifkan dan mengubah suai pengepala permintaan dalam pembangunan sebenar untuk memenuhi keperluan yang berbeza.

Tetapkan pengepala permintaan HTTP di Golang

Pustaka standard di Golang menyediakan pakej net/http, yang menyediakan beberapa fungsi dan struktur untuk menghantar permintaan HTTP. Kita boleh menetapkan pengepala permintaan HTTP dengan menetapkan medan Pengepala dalam struktur.

Buat objek permintaan melalui kaedah http.NewRequest

Gunakan kaedah http.NewRequest untuk mencipta objek Request, yang mempunyai medan Pengepala yang melaluinya kita boleh menetapkan pengepala permintaan.

import (
  "net/http"
)

func main() {
  req, err := http.NewRequest("GET", "https://www.example.com", nil)
  if err != nil {
    ...
  }

  // 设置请求头
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  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")
}

Dalam kod di atas, kami mencipta objek permintaan GET dan menetapkannya kepada req, dan kemudian menetapkan dua medan pengepala permintaan melalui kaedah req.Header.Set: Jenis Kandungan dan Agen Pengguna.

Hantar permintaan melalui kaedah http.Client

Kami juga boleh menggunakan kaedah http.Client untuk menghantar permintaan HTTP dengan pengepala permintaan.

import (
  "net/http"
)

func main() {
  client := &http.Client{}

  // 创造请求对象
  req, err := http.NewRequest("GET", "https://www.example.com", nil)
  if err != nil {
    ...
  }
  // 设置请求头
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  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")

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

Dalam kod di atas, kami mula-mula mencipta objek http.Client, kemudian mencipta objek permintaan req, menetapkan pengepala permintaan kepada objek, dan akhirnya menggunakan kaedah klien.Do untuk menghantar permintaan itu.

Buat objek permintaan melalui kaedah http.NewRequestWithContext

Bermula dari versi Go 1.13, Go menyediakan kaedah permintaan berasaskan Konteks http.NewRequestWithContext(). Kaedah ini juga boleh digunakan untuk mencipta objek permintaan dan juga membolehkan kami menetapkan pengepala permintaan.

import (
  "net/http"
  "context"
)

func main() {
  ctx := context.Background()

  // 创造请求对象
  req, err := http.NewRequestWithContext(ctx, "GET", "https://www.example.com", nil)
  if err != nil {
    ...
  }
  
  // 设置请求头
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  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")
}

Dalam kod di atas, kami menggunakan kaedah context.Background() untuk mencipta objek ctx dan menggunakan kaedah http.NewRequestWithContext untuk mencipta objek permintaan req dan tetapkan pengepala permintaan kepada objek.

Ringkasan

Untuk menetapkan pengepala permintaan HTTP di Golang, kami boleh menggunakan http.NewRequest, http.Client, http.NewRequestWithContext dan kaedah lain untuk membuat dan menghantar permintaan HTTP dengan pengepala permintaan. Medan pengepala permintaan boleh ditetapkan dalam bentuk Key-Value. Dalam pembangunan sebenar, kami boleh menetapkan pengepala permintaan mengikut keperluan khusus untuk memenuhi keperluan perniagaan yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan pengepala permintaan HTTP di Golang. 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