Google app engine GOLANG HTTP基本身份验证与谷歌应用程序引擎URLFetch
如何使用Go将Google app engine GOLANG HTTP基本身份验证与谷歌应用程序引擎URLFetch,google-app-engine,go,Google App Engine,Go,如何使用Go将授权头添加到urlfetch客户端 对于java和python,回答了一个类似的问题,但不是Gourlfetch.Client(ctx)返回HTTP客户端() http.Client具有用于Get、Post等的方法。。。它还有Do,您可以提交任意请求。使用http.NewRequest创建请求: req, err := http.NewRequest("GET", "http://www.google.com", nil) 然后可以添加如下标题: req.Header.Set("
授权
头添加到urlfetch
客户端
对于java
和python
,回答了一个类似的问题,但不是Go
urlfetch.Client(ctx)
返回HTTP客户端()
http.Client
具有用于Get
、Post
等的方法。。。它还有Do
,您可以提交任意请求。使用http.NewRequest创建请求:
req, err := http.NewRequest("GET", "http://www.google.com", nil)
然后可以添加如下标题:
req.Header.Set("Authorization", "whatever")
并调用Do
:
res, err := client.Do(req)
urlfetch.Client(ctx)
返回HTTP客户端()
http.Client
具有用于Get
、Post
等的方法。。。它还有Do
,您可以提交任意请求。使用http.NewRequest创建请求:
req, err := http.NewRequest("GET", "http://www.google.com", nil)
然后可以添加如下标题:
req.Header.Set("Authorization", "whatever")
并调用Do
:
res, err := client.Do(req)
我是新手,请原谅我的代码太难看/格式不正确/完全错了 我一直在努力解决这个问题,在appengine上遇到了同样的问题 @卡莱布上面的回答帮了大忙。我刚刚添加了一些细节,以帮助可能遇到类似问题的人 下面是我的导入语句的样子:
Import {
"appengine"
"appengine/urlfetch"
"bytes"
"encoding/json"
"fmt"
"golang.org/x/oauth2"
"io/ioutil"
"net/http"
"net/url"
}
这是一个函数,用于接收和传入的身份验证回调请求,然后使用来自身份验证服务器的访问令牌请求进行响应。在本例中,fitbit需要将身份验证头设置为“Basic”,并包含一些额外信息。我不知道如何使用股票Oauth2库来实现这一点,它似乎不容易允许更改请求头
正如您所看到的,我们可以查看传入请求(r)的上下文。从该上下文中,我们从urlfetch获取http.Client
然后我们打包并发回一个请求,其中包含一些授权信息
得到响应后,我们将结果打印到浏览器上
希望这有帮助
func authCallbackHandler(w http.ResponseWriter, r *http.Request) {
data := url.Values{}
data.Set("client_id", "231343")
data.Add("grant_type", "authorization_code")
data.Add("redirect_uri", "http://localhost:8080/callmebacklaterok")
data.Add("code", "authcode123132")
encodedData := data.Encode()
c := appengine.NewContext(r)
client := urlfetch.Client(c)
urlStr := "https://api.fitbit.com/oauth2/token"
req, _ := http.NewRequest("POST", urlStr,bytes.NewBufferString(encodedData))
req.Header.Add("Authorization", "Basic RmFuY3kgbWVldGluZyB5b3UgaGVyZSEg")
resp, _ := client.Do(req)
defer resp.Body.Close()
fmt.Fprint(w, resp)
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err.Error())
}
var bodydata interface{}
err = json.Unmarshal(body, &bodydata)
if err != nil {
panic(err.Error())
}
fmt.Fprint(w, bodydata)
}
我是新手,请原谅我的代码太难看/格式不正确/完全错了 我一直在努力解决这个问题,在appengine上遇到了同样的问题 @卡莱布上面的回答帮了大忙。我刚刚添加了一些细节,以帮助可能遇到类似问题的人 下面是我的导入语句的样子:
Import {
"appengine"
"appengine/urlfetch"
"bytes"
"encoding/json"
"fmt"
"golang.org/x/oauth2"
"io/ioutil"
"net/http"
"net/url"
}
这是一个函数,用于接收和传入的身份验证回调请求,然后使用来自身份验证服务器的访问令牌请求进行响应。在本例中,fitbit需要将身份验证头设置为“Basic”,并包含一些额外信息。我不知道如何使用股票Oauth2库来实现这一点,它似乎不容易允许更改请求头
正如您所看到的,我们可以查看传入请求(r)的上下文。从该上下文中,我们从urlfetch获取http.Client
然后我们打包并发回一个请求,其中包含一些授权信息
得到响应后,我们将结果打印到浏览器上
希望这有帮助
func authCallbackHandler(w http.ResponseWriter, r *http.Request) {
data := url.Values{}
data.Set("client_id", "231343")
data.Add("grant_type", "authorization_code")
data.Add("redirect_uri", "http://localhost:8080/callmebacklaterok")
data.Add("code", "authcode123132")
encodedData := data.Encode()
c := appengine.NewContext(r)
client := urlfetch.Client(c)
urlStr := "https://api.fitbit.com/oauth2/token"
req, _ := http.NewRequest("POST", urlStr,bytes.NewBufferString(encodedData))
req.Header.Add("Authorization", "Basic RmFuY3kgbWVldGluZyB5b3UgaGVyZSEg")
resp, _ := client.Do(req)
defer resp.Body.Close()
fmt.Fprint(w, resp)
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err.Error())
}
var bodydata interface{}
err = json.Unmarshal(body, &bodydata)
if err != nil {
panic(err.Error())
}
fmt.Fprint(w, bodydata)
}
我正在尝试向orientDBShow发出一个GET请求,以获取一些示例代码。Go的net/http包允许您添加自定义标题。耶稣基督戴夫,我知道它的Go,我知道它是搜索引擎的golang。WTF有什么问题吗?我正试图向orientDBShow发出一个GET请求,以获取一些示例代码。Go的net/http包允许您添加自定义标题。耶稣基督戴夫,我知道它的Go,我知道它是搜索引擎的golang。你怎么了?