ホームページ  >  記事  >  バックエンド開発  >  Golang で HTTP リクエスト ヘッダーを設定する方法

Golang で HTTP リクエスト ヘッダーを設定する方法

PHPz
PHPzオリジナル
2023-04-05 10:29:452603ブラウズ

Golang は、静的型付け言語として、ネットワーク通信におけるパフォーマンスの点で多くの開発者に好まれています。実際のプロジェクト開発では、外部サービスへの HTTP リクエストを開始することが非常に一般的な要件です。リクエスト ヘッダーは HTTP リクエストの非常に重要な部分です。この記事では、Golang で HTTP リクエスト ヘッダーを設定する方法について説明します。

HTTP リクエスト ヘッダーとは何ですか?

HTTP リクエスト ヘッダーは、クライアントがサーバーにリクエストを送信するときに追加情報を運ぶ部分です。リクエスト ヘッダーは通常、リクエスト メソッド、リクエスト URI、プロトコル バージョン、リクエスト ヘッダー フィールドなどの複数の部分で構成されます。リクエスト ヘッダー フィールドには、サーバーが使用する追加情報を含めることができます。

リクエスト ヘッダー フィールドは、通常、Key-Value 形式で構成されます。たとえば、リクエスト ヘッダーの Content-Type フィールドには、Content-Type としての Key と、要求されたコンテンツのタイプとしての Value が含まれます。 HTTP リクエスト ヘッダーは固定ではなく、実際の開発時にさまざまなニーズに合わせてリクエスト ヘッダーを定義および変更できます。

Golang で HTTP リクエスト ヘッダーを設定する

Golang の標準ライブラリには、HTTP リクエストを送信するためのいくつかの関数と構造を提供する net/http パッケージが用意されています。構造内の Header フィールドを設定することで、HTTP リクエスト ヘッダーを設定できます。

http.NewRequest メソッドを使用してリクエスト オブジェクトを作成する

http.NewRequest メソッドを使用して、リクエスト ヘッダーを設定できる Header フィールドを持つ Request オブジェクトを作成します。

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")
}

上記のコードでは、GET リクエスト オブジェクトを作成して req に割り当て、req.Header.Set を通じて 2 つのリクエスト ヘッダー フィールドを設定します。メソッド : 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 {
    ...
  }
}

上記のコードでは、最初に http.Client オブジェクトを作成し、次にリクエスト オブジェクト req を作成し、リクエスト ヘッダーをオブジェクトに設定し、最後にuse client.Do メソッドはリクエストを送信します。

http.NewRequestWithContext メソッドを使用してリクエスト オブジェクトを作成する

Go 1.13 バージョン以降、Go はコンテキストベースのリクエスト メソッド 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")
}

上記のコードでは、context.Background() メソッドを使用して ctx オブジェクトを作成し、http.NewRequestWithContext メソッドを使用して req リクエスト オブジェクトを作成し、リクエストヘッダー。

概要

Golang で HTTP リクエスト ヘッダーを設定するには、http.NewRequest、http.Client、http.NewRequestWithContext などのメソッドを使用して、リクエスト ヘッダーを含む HTTP リクエストを作成して送信します。リクエストヘッダフィールドはKey-Value形式で設定できます。実際の開発では、さまざまなビジネス要件を満たすために、特定のニーズに応じてリクエスト ヘッダーを設定できます。

以上がGolang で HTTP リクエスト ヘッダーを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。