Dalam membuat permintaan POST dalam Go, adalah penting untuk memastikan ia dikonfigurasikan dan dihantar dengan betul untuk mengelakkan isu ketersambungan. Mari kita menangani cabaran biasa yang dihadapi oleh pembangun di kawasan ini.
Soalan:
Apabila cuba menghantar permintaan POST, tiada respons diterima di destinasi. Adakah coretan kod berikut pendekatan yang sah untuk membuat permintaan sedemikian?
hc := http.Client{} req, err := http.NewRequest("POST", APIURL, nil) form := url.Values{} form.Add("ln", c.ln) form.Add("ip", c.ip) form.Add("ua", c.ua) req.PostForm = form req.Header.Add("Content-Type", "application/x-www-form-urlencoded") glog.Info("form was %v", form) resp, err := hc.Do(req)
Jawapan:
Coretan kod yang anda berikan mempunyai isu kecil dalam cara data borang ditambahkan kepada permintaan itu. Data borang hendaklah dihantar dalam kandungan permintaan, bukan sebagai sebahagian daripada parameter URL. Berikut ialah kod yang diperbetulkan:
req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode()))
Dalam kod yang diperbetulkan ini, panggilan rentetan.NewReader(form.Encode()) mengekod data borang ke dalam rentetan dan menyerahkannya kepada isi permintaan. Ini memastikan bahawa data borang dihantar dengan betul dan boleh diproses oleh pelayan.
Atas ialah kandungan terperinci Adakah Kod Permintaan My Go POST Menghantar Data Borang dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!