Правильный способ добавления заголовков с помощью urlfetch в Google App Engine с Golang и Standard Env - PullRequest
0 голосов
/ 10 сентября 2018

Я новичок в Go и Google App Engine и пытаюсь создать простой API промежуточного программного обеспечения, который запрашивает внешний API.

Поскольку я использую стандартный env в Google App Engine, я должен использовать urlfetch для создания http-запроса. С документацией Google я не могу понять, как добавить заголовки в мой запрос GET - хотя в документации четко указано, что я могу добавить заголовки.

https://cloud.google.com/appengine/docs/standard/go/outbound-requests

Это код, который я пытаюсь изменить, чтобы включить пользовательский заголовок запроса:

import (
    "fmt"
    "net/http"

    "google.golang.org/appengine"
    "google.golang.org/appengine/urlfetch"
)

func handler(w http.ResponseWriter, r *http.Request) {
        ctx := appengine.NewContext(r)
        client := urlfetch.Client(ctx)
        resp, err := client.Get("https://www.google.com/")
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
        }
        fmt.Fprintf(w, "HTTP GET returned status %v", resp.Status)
}

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 10 сентября 2018

Вот рабочее решение, которое использует http.NewRequest для добавления в заголовок.

func handler(w http.ResponseWriter, r *http.Request) {
    ctx := appengine.NewContext(r)
    client := urlfetch.Client(ctx)

    req, err := http.NewRequest("GET", "https://www.google.com/", nil)
    req.Header.Add("CUSTOM-HEADER", "VALUE")
    if err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
            return
    }

    resp, err := client.Do(req)
    if err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
            return
    }

    fmt.Fprintf(w, "HTTP GET returned status %v", resp.Status)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...