ホームページ >バックエンド開発 >Golang >Go の `http.NewRequest(...)` を使用して URL エンコードされた POST リクエストを作成する方法

Go の `http.NewRequest(...)` を使用して URL エンコードされた POST リクエストを作成する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-28 15:06:10992ブラウズ

How to Make URL-Encoded POST Requests with Go's `http.NewRequest(...)`?

http.NewRequest(...) による HTTP URL エンコードされた POST リクエスト

フォーム エンコードされたデータは、HTTP 経由でデータを送信するための基本的な手法です。このデータ エンコード形式は広くサポートされており、さまざまなシナリオで使用されています。リクエスト ヘッダーの制御を維持しながら、http.NewRequest(...) を使用して POST リクエストを作成するアプローチを検討してみましょう。

URL エンコードされたデータを送信するには、ペイロードを URL に追加するのではなく、URL 経由で渡す必要があります。リクエストの本文。これには、フォームエンコードされたデータを保持する bytes.Buffer の作成が含まれます:

data := url.Values{}
data.Set("name", "foo")
data.Set("surname", "bar")
encoder := bytes.Buffer{}
encoder.WriteString(data.Encode())

ここで、http.Request を作成し、バッファを本文に添付できます:

request, err := http.NewRequest(http.MethodPost, urlStr, &encoder)

フォームエンコードされたデータを扱っているため、適切なコンテンツタイプをheaders:

request.Header.Set("Content-Type", "application/x-www-form-urlencoded")

最後に、リクエストを送信する準備が整いました:

resp, err := http.DefaultClient.Do(request)

これらの手順に従うことで、http.NewRequest を使用して URL エンコードされた POST リクエストを正常に作成できます。 (...) およびカスタム リクエスト ヘッダー。 URL エンコードされたデータはリクエスト本文で送信する必要があり、それに応じてコンテンツ タイプ ヘッダーを設定する必要があることに注意してください。

以上がGo の `http.NewRequest(...)` を使用して URL エンコードされた POST リクエストを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。