Heim > Backend-Entwicklung > Golang > So legen Sie HTTP-Anfrageheader in Golang fest

So legen Sie HTTP-Anfrageheader in Golang fest

PHPz
Freigeben: 2023-04-05 10:46:02
Original
2652 Leute haben es durchsucht

Golang wird als statisch typisierte Sprache von vielen Entwicklern wegen seiner Leistung bei der Netzwerkkommunikation bevorzugt. In der tatsächlichen Projektentwicklung ist es eine sehr häufige Anforderung, HTTP-Anfragen an externe Dienste zu initiieren. Der Anforderungsheader ist ein sehr wichtiger Teil der HTTP-Anfrage. In diesem Artikel wird erläutert, wie der HTTP-Anforderungsheader in Golang festgelegt wird.

Was sind HTTP-Anfrageheader?

Der HTTP-Anfrageheader ist ein Teil, der einige zusätzliche Informationen enthält, wenn der Client eine Anfrage an den Server sendet. Ein Anforderungsheader besteht normalerweise aus mehreren Teilen wie Anforderungsmethode, Anforderungs-URI, Protokollversion, Anforderungsheaderfeld usw. Das Anforderungsheaderfeld kann einige zusätzliche Informationen enthalten, die der Server verwenden kann.

Das Anforderungsheaderfeld besteht normalerweise aus einem Schlüsselwertformular. Das Feld „Inhaltstyp“ im Anforderungsheader hat beispielsweise den Schlüssel als Inhaltstyp und den Wert als Typ des angeforderten Inhalts. HTTP-Anforderungsheader sind nicht festgelegt. Wir können Anforderungsheader in der tatsächlichen Entwicklung definieren und ändern, um unterschiedliche Anforderungen zu erfüllen.

HTTP-Anforderungsheader in Golang festlegen

Die Standardbibliothek in Golang stellt das Paket net/http bereit, das einige Funktionen und Strukturen zum Senden von HTTP-Anforderungen bereitstellt. Wir können den HTTP-Anforderungsheader festlegen, indem wir das Feld „Header“ in der Struktur festlegen.

Erstellen Sie ein Anforderungsobjekt über die Methode http.NewRequest.

Mit der Methode http.NewRequest können Sie ein Anforderungsobjekt erstellen, das über ein Header-Feld verfügt, über das wir den Anforderungsheader festlegen können.

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")
}
Nach dem Login kopieren

Im obigen Code erstellen wir ein GET-Anforderungsobjekt und weisen es req zu und legen dann zwei Anforderungsheaderfelder über die Methode req.Header.Set fest: Inhaltstyp und Benutzeragent. req,然后通过req.Header.Set方法设置了两个请求头字段:Content-Type和User-Agent。

通过http.Client方法发送请求

我们还可以使用http.Client方法来发送带请求头的HTTP请求。

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 {
    ...
  }
}
Nach dem Login kopieren

上述代码中,我们先创建了一个http.Client对象,接着创建一个请求对象req,给该对象设置了请求头,最后使用client.Do方法发送了请求。

通过http.NewRequestWithContext方法创建请求对象

从Go 1.13版本开始,Go提供了一个基于Context上下文的请求方法http.NewRequestWithContext()。该方法也可以用于创建一个请求对象,并且也允许我们设置请求头。

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")
}
Nach dem Login kopieren

上述代码中,我们使用了context.Background()方法创建了一个ctx对象,并使用http.NewRequestWithContext方法创建了req

Anfrage über die http.Client-Methode senden

Wir können auch die http.Client-Methode verwenden, um eine HTTP-Anfrage mit Anforderungsheader zu senden.

rrreee

Im obigen Code erstellen wir zuerst ein http.Client-Objekt, dann ein Anforderungsobjekt req, setzen den Anforderungsheader auf das Objekt und verwenden schließlich den Client . Die Do-Methode sendet die Anfrage. 🎜🎜Erstellen Sie ein Anforderungsobjekt über die Methode http.NewRequestWithContext.🎜🎜Ab Go 1.13 bietet Go eine kontextbasierte Anforderungsmethode http.NewRequestWithContext(). Diese Methode kann auch zum Erstellen eines Anforderungsobjekts verwendet werden und ermöglicht uns auch das Festlegen von Anforderungsheadern. 🎜rrreee🎜Im obigen Code haben wir die context.Background()-Methode verwendet, um ein ctx-Objekt zu erstellen, und die http.NewRequestWithContext-Methode verwendet, um ein req-Anforderungsobjekt zu erstellen und den Anforderungsheader auf zu setzen das Objekt. 🎜🎜Zusammenfassung🎜🎜Um HTTP-Anfrageheader in Golang festzulegen, können wir http.NewRequest, http.Client, http.NewRequestWithContext und andere Methoden verwenden, um HTTP-Anfragen mit Anfrageheadern zu erstellen und zu senden. Anforderungsheaderfelder können im Schlüsselwertformat festgelegt werden. In der tatsächlichen Entwicklung können wir Anforderungsheader entsprechend den spezifischen Anforderungen festlegen, um unterschiedliche Geschäftsanforderungen zu erfüllen. 🎜

Das obige ist der detaillierte Inhalt vonSo legen Sie HTTP-Anfrageheader in Golang fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage