net/http.Request 関数を使用して、カスタマイズされた HTTP リクエストを送信し、応答ステータス コードと応答ヘッダーを取得します。

WBOY
リリース: 2023-07-25 08:33:22
オリジナル
1321 人が閲覧しました

net/http.Request 関数を使用して、カスタマイズされた HTTP 要求を送信し、応答ステータス コードと応答ヘッダーを取得します。

HTTP 要求は、最新のネットワーク通信において非常に一般的で重要な通信プロトコルです。 Go 言語では、net/http パッケージの Request 関数を使用して HTTP リクエストを送信し、リクエストのさまざまな部分をカスタマイズできます。この記事では、Request関数を使ってHTTPリクエストを送信し、レスポンスのステータスコードとレスポンスヘッダを取得する方法を紹介します。

最初に、Request 関数を使用するために net/http パッケージをインポートする必要があります:

import (
    "net/http"
    "fmt"
)
ログイン後にコピー

次に、Request 関数を使用して HTTP リクエストを送信できます。 Request 関数は、リクエスト メソッド、URL、リクエスト ヘッダー、リクエスト本文など、リクエストのさまざまな部分を定義する Request オブジェクトであるパラメータを受け取ります。 Request オブジェクトを作成し、対応するプロパティを設定することで、リクエストをカスタマイズできます。

以下は GET リクエストの送信例です:

func main() {
    // 创建Request对象
    req, err := http.NewRequest("GET", "http://www.example.com", nil)
    if err != nil {
        fmt.Println("创建请求失败:", err)
        return
    }
    
    // 发送HTTP请求
    client := &http.Client{}
    res, err := client.Do(req)
    if err != nil {
        fmt.Println("发送请求失败:", err)
        return
    }
    
    // 获取响应状态码
    fmt.Println("状态码:", res.StatusCode)
    
    // 获取响应头
    for key, value := range res.Header {
        fmt.Println(key, ":", value)
    }
}
ログイン後にコピー

上の例では、http.NewRequest 関数を呼び出して GET リクエストの Request オブジェクトを作成します。パラメータ「GET」はリクエストメソッドを示し、「http://www.example.com」はリクエストURLを示し、nilはリクエストボディが空であることを示します。次に、 client.Do(req) を呼び出してリクエストを送信し、返された応答を res 変数に保存します。

次に、res.StatusCode を呼び出して応答ステータス コードを取得できます。リクエストが成功した場合、ステータス コードは通常 200 ですが、リダイレクト、サーバー エラー、その他の状況では、ステータス コードは異なる値になります。

最後に、res.Header を走査して応答ヘッダー情報を取得します。応答ヘッダーはマップであり、キーは応答ヘッダー フィールドの名前を表し、値は対応する値を表します。必要に応じて応答ヘッダーを処理できます。

GET リクエストに加えて、POST、PUT、DELETE などの他のタイプのリクエストも送信できます。 Request オブジェクトの作成時に、対応するリクエスト メソッドを設定するだけです。

net/http パッケージの Request 関数を使用すると、さまざまな種類の HTTP リクエストを柔軟に送信し、応答のステータス コードと応答ヘッダを取得できます。これにより、ネットワーク通信の自由度と柔軟性がさらに高まります。この記事の内容が読者のお役に立てれば幸いです。

以上がnet/http.Request 関数を使用して、カスタマイズされた HTTP リクエストを送信し、応答ステータス コードと応答ヘッダーを取得します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート