在 Go 中發出 POST 請求時,確保正確配置和發送請求以避免連接問題非常重要。讓我們解決該領域開發人員面臨的常見挑戰。
問題:
嘗試發送 POST 請求時,目的地未收到任何回應。以下程式碼片段是發出此類請求的有效方法嗎?
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)
答案:
您提供的程式碼片段在新增表單資料的方式上存在一個小問題到請求。表單資料應在請求內文中傳送,而不是作為 URL 參數的一部分。以下是修正後的程式碼:
req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode()))
在此修正後的程式碼中,strings.NewReader(form.Encode()) 呼叫將表單資料編碼為字串並將其指派給請求正文。這確保了表單資料正確發送並且可以被伺服器處理。
以上是我的Go POST請求代碼是否正確發送表單資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!