Saya menggunakan http
paket dari Go untuk menangani permintaan POST. Bagaimana cara mengakses dan mengurai konten string kueri dari Request
objek? Saya tidak dapat menemukan jawabannya dari dokumentasi resmi.
go
query-string
Fabien
sumber
sumber
r.FormValue("id")
untuk mengambil parameter kueri, Anda tidak dapat mengirim i melalui data formulir dalam cURL (yaitu,curl 0.0.0.0:8888 -d id=foobar
tidak akan berfungsi). Anda harus mengirimkannya melalui query params (curl 0.0.0.0:8888?id=foobar
).Jawaban:
QueryString, menurut definisi , ada di URL. Anda dapat mengakses URL permintaan menggunakan
req.URL
( doc ). Objek URL memilikiQuery()
metode ( doc ) yang mengembalikanValues
tipe, yang merupakanmap[string][]string
parameter QueryString.Jika yang Anda cari adalah data POST yang dikirimkan oleh formulir HTML , maka ini (biasanya) adalah pasangan nilai kunci di badan permintaan. Anda benar dalam jawaban yang bisa Anda panggil
ParseForm()
dan kemudian gunakanreq.Form
bidang untuk mendapatkan peta pasangan nilai kunci, tetapi Anda juga bisa meneleponFormValue(key)
untuk mendapatkan nilai kunci tertentu. Panggilan iniParseForm()
jika diperlukan, dan mendapatkan nilai terlepas dari bagaimana mereka dikirim (yaitu dalam string kueri atau dalam isi permintaan).sumber
req.URL.RawQuery
mengembalikan semuanya setelah?
permintaan GET, jika itu membantu.Berikut adalah contoh yang lebih konkret tentang cara mengakses parameter GET. The
Request
objek memiliki metode yang mem-parsing mereka keluar untuk Anda disebut Query :Dengan asumsi URL permintaan seperti http: // host: port / sesuatu? Param1 = b
Perhatikan juga "kunci dalam peta Nilai [yaitu, Query () nilai kembalian] peka huruf besar / kecil."
sumber
r.URL.Query().Get("moviename")
untuk menghindari kesalahan fatal ini).Get
metode ini hanya mengembalikan yang pertama jika ada beberapa, jadi ini adalah contoh lainnya. Info berguna, terima kasih!Values.Get()
kembali dengannil
. golang.org/pkg/net/url/#ValuesBerikut ini contohnya:
untuk info lebih lanjut. tentang paket http, Anda dapat mengunjungi dokumentasinya di sini .
FormValue
pada dasarnya mengembalikan nilai POST atau PUT, atau nilai GET, dalam urutan itu, yang pertama ditemukannya.sumber
Berikut adalah contoh kerja sederhana:
sumber
Ada dua cara untuk mendapatkan parameter kueri:
Dalam kasus kedua, seseorang harus berhati-hati karena parameter tubuh akan didahulukan daripada parameter kueri. Penjelasan lengkap tentang mendapatkan parameter kueri dapat ditemukan di sini
https://golangbyexample.com/net-http-package-get-query-params-golang
sumber
Kata-kata di bawah ini berasal dari dokumen resmi.
Jadi, contoh kode seperti di bawah ini akan berfungsi.
sumber