Я использую http
пакет от Go для обработки запроса POST. Как я могу получить доступ и проанализировать содержимое строки запроса из Request
объекта? Я не могу найти ответ в официальной документации.
go
query-string
Fabien
источник
источник
r.FormValue("id")
для получения параметра запроса, вы не можете отправлять i через данные формы в cURL (т. Е.curl 0.0.0.0:8888 -d id=foobar
Не будет работать). Вы должны отправить его через query params (curl 0.0.0.0:8888?id=foobar
).Ответы:
QueryString по определению находится в URL-адресе. Вы можете получить доступ к URL-адресу запроса, используя
req.URL
( doc ). У объекта URL естьQuery()
метод ( doc ), который возвращаетValues
тип, который является просто однимmap[string][]string
из параметров QueryString.Если вы ищете данные POST, отправленные HTML-формой , то это (обычно) пара ключ-значение в теле запроса. Вы правы в своем ответе, который вы можете вызвать,
ParseForm()
а затем использоватьreq.Form
поле для получения карты пар ключ-значение, но вы также можете позвонить,FormValue(key)
чтобы получить значение определенного ключа. Он вызывает,ParseForm()
если требуется, и получает значения независимо от того, как они были отправлены (то есть в строке запроса или в теле запроса).источник
req.URL.RawQuery
возвращает все, что находится после?
запроса GET, если это помогает.Вот более конкретный пример того, как получить доступ к параметрам GET. У
Request
объекта есть метод, который их анализирует для вас, который называется Query :Предполагая URL-адрес запроса, например http: // host: port / something? Param1 = b
Также обратите внимание, что «ключи в карте значений [т.е. возвращаемое значение Query ()] чувствительны к регистру».
источник
r.URL.Query().Get("moviename")
чтобы избежать этой роковой ошибки).Get
метода возвращает только первое, если их несколько, так что это пример большего количества. Полезная инфа, спасибо!Values.Get()
возвращаемую пустую строку сnil
. golang.org/pkg/net/url/#ValuesНиже приведен пример:
для получения дополнительной информации. о http-пакете вы можете посмотреть его документацию здесь .
FormValue
в основном возвращает значения POST или PUT или значения GET в этом порядке, первое найденное.источник
Вот простой рабочий пример:
источник
Есть два способа получить параметры запроса:
Во втором случае нужно быть осторожным, поскольку параметры тела будут иметь приоритет над параметрами запроса. Полное описание получения параметров запроса можно найти здесь
https://golangbyexample.com/net-http-package-get-query-params-golang
источник
Ниже приведены слова из официального документа.
Итак, примеры кодов, показанные ниже, будут работать.
источник