http getリクエストでヘッダーを設定するにはどうすればよいですか?


152

私はGoで単純なhttp GETを実行しています:

client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
res, _ := client.Do(req)

しかし、私はドキュメントのリクエストヘッダーをカスタマイズする方法を見つけることができません、ありがとう

回答:


233

Headerリクエストのフィールドは公開されています。あなたはこれを行うことができます:

req.Header.Set("name", "value")

38

http.Requestヘッダーで「ホスト」をSetメソッド経由で設定できないことに注意してください

req.Header.Set("Host", "domain.tld")

しかし、直接設定することができます:

req.Host = "domain.tld"

req, err := http.NewRequest("GET", "http://10.0.0.1/", nil)
if err != nil {
    ...
}

req.Host = "domain.tld"
client := &http.Client{}
resp, err := client.Do(req)

2

Goのnet / httpパッケージには、ヘッダーを処理する多くの関数があります。それらの中には、AddDelGet、およびSetメソッドがあります。Setの使用方法は次のとおりです。

func yourHandler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("header_name", "header_value")
}

7
wはどんなタイプ?
Eswar Yaganti 2017

@EswarYagantiヘッダーをどのように送信しますか?を取得し、r *http.Requestで何かを返します w http.ResponseWriter。したがって、おそらくヘッダーを返すため、応答ライターでそれらを書き込む必要があります。そしてwレスポンスライターです。これはあなたにとって論理的に見えますか?
サルバドールダリ2017

3
元の投稿者は、「リクエストヘッダーをカスタマイズする」ことを望んでいると述べました。この例では、応答ヘッダーをカスタマイズします。
Martin Del Vecchio
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.