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 中国語 Web サイトの他の関連記事を参照してください。