ホームページ  >  記事  >  バックエンド開発  >  golang はリクエストアドレスを取得します

golang はリクエストアドレスを取得します

WBOY
WBOYオリジナル
2023-05-14 19:36:361156ブラウズ

Golang を使用して Web アプリケーションを作成する場合、ユーザーがブラウザーに入力したリクエスト アドレス (URL) を取得する必要がある場合があります。このプロセスは非常に簡単で、Go の組み込み net/http パッケージを使用するだけで完了します。

まず、HTTP ハンドラーを作成する必要があります。既存の HTTP ハンドラーに基づいて拡張することも、最初から作成することもできます。以下は、「Hello, World!」メッセージを返すだけの簡単な HTTP ハンドラーの例です。

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World!")
    })
    http.ListenAndServe(":8080", nil)
}

コード内の http.HandleFunc 関数はルーターを実装しており、そのリクエストは次のとおりです。ハンドラー関数にマップされ、http.ListenAndServe 関数はポート 8080 で HTTP サーバーを起動します。

次に、http.Request リクエスト オブジェクトからリクエスト URL を取得する必要があります。ハンドラー関数では、r.URL を介して取得できます。 URL は構造体であるため、その String() メソッドを使用して文字列形式に変換する必要があることに注意してください。リクエスト URL を取得するコードは次のとおりです。

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Your request URL path is: %s", r.URL.String())
})

上記のコードは、リクエスト URL のパス部分 (つまり、「/」の後の部分) を HTTP 応答に出力します。

完全なリクエスト URL (クエリ文字列などを含む) を取得する必要がある場合は、r.URL.RequestURI() メソッドを使用できます:

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Your request URL is: %s", r.URL.RequestURI())
})

上記のコードは、完全なリクエスト URL を HTTP レスポンスに出力します。

リクエスト URL の取得に加えて、http.Request オブジェクトは、リクエスト メソッド、リクエスト ヘッダー、リクエスト本文など、他の多くの情報も提供します。これらを通じて、より柔軟で機能豊富な HTTP ハンドラーを作成できます。

概要:

Golang でリクエスト アドレスを取得するのは非常に簡単です。http.RequestURL または RequestURI を使用するだけです。オブジェクト メソッドで十分です。開発者として、Web アプリケーションをより細かく制御するには、これらの基本的な HTTP 情報をよく理解しておく必要があります。

以上がgolang はリクエストアドレスを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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