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.Request
で URL
または RequestURI を使用するだけです。オブジェクト
メソッドで十分です。開発者として、Web アプリケーションをより細かく制御するには、これらの基本的な HTTP 情報をよく理解しておく必要があります。
以上がgolang はリクエストアドレスを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。