Golang では、データのやり取りに HTTP プロトコルを使用する必要があることがよくあります。 HTTP リクエストでは、リクエスト パラメータは非常に一般的であるため、バックエンド開発者にとって正しいリクエスト パラメータ形式は非常に重要です。
それでは、Golang のリクエスト パラメーターの形式は何でしょうか?以下、コード例を通して詳しく紹介していきます。
フォーム リクエスト パラメーターは、最も一般的なリクエスト パラメーター フォームの 1 つです。通常のシナリオでは、POST リクエストを使用してフォーム データを送信し、リクエスト パラメーターはリクエスト本文にカプセル化されます。
次は、net/http
ライブラリを使用したサンプル コードです。
package main import ( "log" "net/http" ) func main() { http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) { username := r.PostFormValue("username") password := r.PostFormValue("password") log.Printf("username: %s, password: %s", username, password) }) log.Fatal(http.ListenAndServe(":8080", nil)) }
上の例では、r.PostFormValue()## を渡します。 # フォーム内のパラメータを取得するメソッド。このメソッドは、リクエスト本文内のフォーム パラメータを自動的に解析し、マップに保存します。
encoding/json ライブラリを使用して、JSON 形式のリクエスト パラメーターを解析します。
package main import ( "encoding/json" "log" "net/http" ) type User struct { Username string `json:"username"` Password string `json:"password"` } func main() { http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) { var user User err := json.NewDecoder(r.Body).Decode(&user) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } log.Printf("username: %s, password: %s", user.Username, user.Password) }) log.Fatal(http.ListenAndServe(":8080", nil)) }上の例では、最初に
User # を定義します。 ##Structure を作成し、json.NewDecoder()
メソッドを使用してリクエスト本文の JSON データを解析します。解析後、ユーザーが送信した実際のデータを簡単に取得できます。 クエリ パラメータ
)。一般的なクエリ操作は、クエリ パラメーターによって実行されます。 Golang では、net/url
ライブラリを使用してクエリ パラメータを解析できます。 <pre class='brush:go;toolbar:false;'>package main
import (
"log"
"net/http"
"net/url"
)
func main() {
http.HandleFunc("/search", func(w http.ResponseWriter, r *http.Request) {
query := r.URL.Query()
name := query.Get("name")
minPrice := query.Get("minPrice")
maxPrice := query.Get("maxPrice")
log.Printf("name: %s, minPrice: %s, maxPrice: %s", name, minPrice, maxPrice)
})
log.Fatal(http.ListenAndServe(":8080", nil))
}</pre>
上記の例では、
を使用します。メソッドは URL の背後にあるクエリ パラメータを取得し、Get()
メソッドを使用して対応するパラメータの値を取得します。 パス パラメータ
)。 Golang では、正規表現を使用して net/http
ライブラリを使用して Path パラメーターを取得できます。 <pre class='brush:go;toolbar:false;'>package main
import (
"log"
"net/http"
"regexp"
)
func main() {
http.HandleFunc("/users/", func(w http.ResponseWriter, r *http.Request) {
re := regexp.MustCompile(`/users/(d+)`)
match := re.FindStringSubmatch(r.URL.Path)
if match == nil {
http.NotFound(w, r)
return
}
id := match[1]
log.Printf("user id: %s", id)
})
log.Fatal(http.ListenAndServe(":8080", nil))
}</pre>
上記の例では、正規表現
を使用して URL パス内の数値を照合し、FindStringSubmatch()
メソッドを通じて照合結果を取得します。このようにして、Path パラメータを簡単に取得できます。 概要
以上がgolang リクエストパラメータの形式の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。