1

私は2つのAPIを構築しています。ある人が別の人に要求します。

リクエストを受け取る API を呼び出すには、X-Token ヘッダーを渡す必要があります。私はGolangでこれをやっています

client := &http.Client{
    Transport: &http.Transport{
        TLSClientConfig: &tls.Config{
            InsecureSkipVerify: true,
        },
    },
}

req, err := http.NewRequest("GET", "https://localhost:8086/v2/example", nil)
if err != nil {
    c.JSON(http.StatusInternalServerError, gin.H{"Error": err.Error()})
}
req.Header.Add("accept", "application/json")
req.Header.Add("content-type", "application/json")
req.Header.Add("x-token", "a2e63ee01401aaeca78be023dfbb8c59")

resp, err := client.Do(req)

他の API では、次のよう にginを使用して http ヘッダーを取得します。

token := c.Request.Header.Get("x-token")

ヘッダーが別の値で到着し、X-Token がない理由がわかりません。ありがとう!

の結果fmt.Printf("%+v", c.Request.Header):

map[User-Agent:[Go-http-client/1.1] Referer:[https://localhost:8086/v2/example] Accept-Encoding:[gzip]]

x-tokenaccept、およびcontent-typeヘッダーがどこにあるかわかりません....

重要

  • Postmanでx-tokenヘッダーを使用して要求された API に要求を行うと、正しいヘッダーが取得されます。
  • httpbinなどのリクエストを行う API でリクエスト アドレスを変更すると、正しいヘッダーも取得されます。
4

1 に答える 1

1

こんにちは、皆さん!私は解決策を見つけました....

理由はまだわかりません...しかし、golangは末尾のスラッシュURLを処理しないと思います....

https://localhost:8086/v2/example

https://localhost:8086/v2/example/ とは異なります

それが私の問題でした....

golang で生成された postman のコードをコピーして貼り付けるだけです...そしてそれが「最大の」違いでした....

ありがとうございます。郵便屋さん...

于 2016-10-11T11:17:37.240 に答える