1. ホーム
  2. go

[解決済み] Go で POST リクエストを送信するには?

2023-02-03 12:56:11

質問

POSTリクエストを行おうとしているのですが、うまくいきません。相手側で何も受信されません。

こういうものなのでしょうか?私が認識しているのは PostForm 関数があることは知っていますが、それを使うことはできないと思っています。 httputil でテストできないので使えないと思うのですが、どうでしょうか?

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)

どのように解決するのですか?

あなたはほとんど正しい考えを持っています。それは、間違っているフォームの送信だけです。フォームはリクエストのボディに属します。

req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode()))