golang は、Web 開発の分野で人気のあるプログラミング言語です。 golang を使用する場合、多くの場合、サーバー上でリクエストを取得し、そのリクエストに対して対応する操作を実行する必要があります。この記事では、golang を使用してリクエストを取得する方法と、いくつかの実践的なコード例を紹介します。
golang でリクエストを取得するには、通常、http パッケージを使用する必要があります。 http パッケージを使用すると、サーバー上で HTTP リクエストを簡単に処理および操作できます。 http パッケージは、HTTP リクエスト ヘッダーの解析、HTTP リクエスト本文の解析など、HTTP リクエストを処理するための多くの機能を提供します。 http パッケージで HTTP サーバーを作成する場合、通常は http.ListenAndServe 関数を使用して HTTP リクエストをリッスンします。
以下は、http パッケージを使用して golang で HTTP リクエストを解析する方法を示す簡単な例です。
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }
上記のコードは、非常に単純な HTTP サーバーを示しています。サーバーはポート 8080 で待機します。リクエストがサーバーに送信されると、サーバーは Hello World!
応答を返します。この例では、http.HandleFunc を通じてリクエスト処理関数を登録します。これにより、リクエストがサーバーに到達すると、サーバーはそのリクエストを対応する処理関数に渡します。
http.NewRequest
関数を使用して、HTTP リクエストを作成します。この関数の最初のパラメータは GET
、POST
などのリクエスト メソッドで、2 番目のパラメータはリクエスト URL です。要求された URL については、url.Parse
関数を使用して文字列を URL オブジェクトに解析できます。
これらのメソッドを通じて、次のような HTTP リクエストを構築できます。
package main import ( "net/http" "net/url" ) func main () { u, _ := url.Parse("http://localhost:8080") req := http.NewRequest("GET", u.String(), nil) client := &http.Client{} client.Do(req) }
上記のコードは、http.NewRequest
関数を使用して HTTP リクエストを作成する方法を示しています。 。このリクエストは GET
メソッドを使用し、localhost
のポート 8080 に送信されます。 client.Do(req)
関数を通じて、このリクエストはサーバーに送信され、サーバーは HTTP 応答を返します。
リクエストでデータを送信する場合は、http.Request
構造体の Body
メンバー変数を使用できます。このメンバー変数は io.Reader
インターフェイス タイプであり、これによりリクエスト本文を簡単に読み取ることができます。たとえば、次のとおりです。
package main import ( "bytes" "net/http" ) func main () { data := []byte("hello") req, _ := http.NewRequest("POST", "http://localhost:8080", bytes.NewBuffer(data)) client := &http.Client{} client.Do(req) }
上記のコードは、リクエストにデータを追加する方法を示しています。 bytes.NewBuffer
関数を使用して、文字列 hello
を io.Reader
インターフェイス タイプのオブジェクトにラップし、それを要求された に割り当てました。 Body
メンバー変数。このデータは、リクエストがサーバーに送信される前に、HTTP リクエスト本文にエンコードされます。
概要: この記事では、golang で HTTP リクエストを取得する方法を紹介し、対応するコード例をいくつか示します。 golang を使い始めたばかりで、サーバー上で HTTP リクエストを処理する必要がある場合は、この記事が開始に役立ちます。
以上がgolangを使ってリクエストを取得する方法(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。