ホームページ >バックエンド開発 >Golang >Go の HTTP POST リクエストのクエリ文字列にアクセスするにはどうすればよいですか?

Go の HTTP POST リクエストのクエリ文字列にアクセスするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-10 17:22:10741ブラウズ

How to Access Query Strings in Go's HTTP POST Requests?

Go の HTTP パッケージを使用した POST リクエストのクエリ文字列へのアクセス

Go の HTTP パッケージを使用して POST リクエストを処理する場合、クエリ文字列へのアクセスと解析は次のように行うことができます。重要な。 HTTP パッケージは、クエリ文字列を抽出するための便利なメソッドを提供します: Query().

POST リクエストでは、通常、クエリ文字列は URL に添付され、情報のキーと値のペアが含まれます。 。 Query() メソッドは、これらのキーと値のペアを取得し、値マップに解析します。

POST リクエストでクエリ文字列にアクセスするには、次の手順に従います。

  • URL を抽出します: *http.Request オブジェクトから、次を使用して URL を取得します。 r.URL.
  • クエリ文字列の解析: URL で Query() メソッドを使用して、クエリ文字列を解析します。これにより、値マップが返されます。キーはパラメータ名を表し、対応する値はそのパラメータの値の配列です。
  • パラメータ値へのアクセス: 値マップからパラメータ値を取得するには、次のいずれかを使用します。 Get() または []string インデックス表記。
  • 注: 大文字と小文字が区別されます。は、値マップのパラメータ キーにアクセスするときに重要です。

例:

func newHandler(w http.ResponseWriter, r *http.Request) {
  fmt.Println("GET params were:", r.URL.Query())

  // if only one expected
  param1 := r.URL.Query().Get("param1")
  if param1 != "" {
    // ... process it, will be the first (only) if multiple were given
    // note: if they pass in like ?param1=&param2= param1 will also be "" :|
  }

  // if multiples possible, or to process empty values like param1 in
  // ?param1=&param2=something
  param1s := r.URL.Query()["param1"]
  if len(param1s) > 0 {
    // ... process them ... or you could just iterate over them without a check
    // this way you can also tell if they passed in the parameter as the empty string
    // it will be an element of the array that is the empty string
  }    
}

以上がGo の HTTP POST リクエストのクエリ文字列にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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