Heim >Backend-Entwicklung >Golang >Wie greife ich auf Abfragezeichenfolgen in den HTTP-POST-Anfragen von Go zu?

Wie greife ich auf Abfragezeichenfolgen in den HTTP-POST-Anfragen von Go zu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-10 17:22:10740Durchsuche

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

Zugriff auf Abfragezeichenfolgen in POST-Anfragen mit dem HTTP-Paket von Go

Bei der Verarbeitung von POST-Anfragen mit dem HTTP-Paket von Go kann der Zugriff auf und das Parsen von Abfragezeichenfolgen erfolgen entscheidend. Das HTTP-Paket bietet eine praktische Methode zum Extrahieren von Abfragezeichenfolgen: Query().

In einer POST-Anfrage wird die Abfragezeichenfolge normalerweise an die URL angehängt und enthält Schlüssel-Wert-Informationspaare . Die Query()-Methode ruft diese Schlüssel-Wert-Paare ab und analysiert sie in einer Wertezuordnung.

Um auf die Abfragezeichenfolge in einer POST-Anfrage zuzugreifen, führen Sie die folgenden Schritte aus:

  • Extrahieren Sie die URL: Rufen Sie aus dem *http.Request-Objekt die URL mit ab r.URL.
  • Abfragezeichenfolge analysieren: Verwenden Sie die Query()-Methode für die URL, um die Abfragezeichenfolge zu analysieren. Dies gibt eine Wertezuordnung zurück, in der Schlüssel Parameternamen darstellen und entsprechende Werte Arrays von Werten für diesen Parameter sind.
  • Zugriff auf Parameterwerte: Um Parameterwerte aus der Wertezuordnung abzurufen, verwenden Sie entweder die Get()- oder []String-Indexnotation.
  • HINWEIS: Beim Zugriff auf Parameterschlüssel in den Werten ist die Berücksichtigung der Groß-/Kleinschreibung wichtig Karte.

Zum Beispiel:

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
  }    
}

Das obige ist der detaillierte Inhalt vonWie greife ich auf Abfragezeichenfolgen in den HTTP-POST-Anfragen von Go zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn