Używam http
pakietu z Idź do obsługi żądania POST. Jak uzyskać dostęp do ciągu zapytania z Request
obiektu i przeanalizować ją ? Nie mogę znaleźć odpowiedzi w oficjalnej dokumentacji.
go
query-string
Fabien
źródło
źródło
r.FormValue("id")
do pobierania parametrów zapytania, nie możesz wysłać i przez dane formularza w cURL (tj.curl 0.0.0.0:8888 -d id=foobar
Nie zadziała). Musisz go wysłać poprzez zapytanie params (curl 0.0.0.0:8888?id=foobar
).Odpowiedzi:
QueryString z definicji znajduje się w adresie URL. Możesz uzyskać dostęp do adresu URL żądania za pomocą
req.URL
( doc ). Obiekt URL maQuery()
metodę ( doc ), która zwracaValues
typ, który jest po prostu jednymmap[string][]string
z parametrów QueryString.Jeśli szukasz danych POST przesłanych przez formularz HTML , to jest to (zwykle) para klucz-wartość w treści żądania. Masz rację w swojej odpowiedzi, że możesz zadzwonić,
ParseForm()
a następnie użyćreq.Form
pola, aby uzyskać mapę par klucz-wartość, ale możesz również zadzwonić,FormValue(key)
aby uzyskać wartość określonego klucza. To wywołuje,ParseForm()
jeśli jest to wymagane, i pobiera wartości niezależnie od tego, w jaki sposób zostały wysłane (tj. W ciągu zapytania lub w treści żądania).źródło
req.URL.RawQuery
zwraca wszystko po?
żądaniu GET, jeśli to pomaga.Oto bardziej konkretny przykład dostępu do parametrów GET.
Request
Obiekt ma metody, która przetwarza je na zadzwoniłeś Zapytanie :Zakładając adres URL żądania, taki jak http: // host: port / coś? Param1 = b
Należy również zauważyć, że „w kluczach w mapie wartości [tj. Wartość zwracana przez Query ()] jest rozróżniana wielkość liter”.
źródło
r.URL.Query().Get("moviename")
, aby uniknąć tego fatalny błąd).Get
metody zwraca tylko pierwszą, jeśli istnieje wiele, więc jest to przykład more. Przydatne informacje, dziękuję!Values.Get()
zwraca znil
. golang.org/pkg/net/url/#ValuesPoniżej przykład:
po więcej informacji. o pakiecie http, możesz odwiedzić jego dokumentację tutaj .
FormValue
zasadniczo zwraca wartości POST lub PUT lub wartości GET, w tej kolejności, w pierwszej znalezionej.źródło
Oto prosty, działający przykład:
źródło
Istnieją dwa sposoby uzyskania parametrów zapytania:
W drugim przypadku należy zachować ostrożność, ponieważ parametry treści będą miały pierwszeństwo przed parametrami zapytania. Pełny opis uzyskiwania parametrów zapytania można znaleźć tutaj
https://golangbyexample.com/net-http-package-get-query-params-golang
źródło
Poniższe słowa pochodzą z oficjalnego dokumentu.
Więc przykładowe kody jak poniżej będą działać.
źródło