如何在Go App Engine的Urlfetch包中使用Cookies

huangapple go评论82阅读模式
英文:

How to Use Cookies with Go App Engine Urlfetch Package

问题

这段代码在常规的Go代码中运行良好。

cookieJar, err := cookiejar.New(nil)
// 错误处理
client := &http.Client{Jar: cookieJar}

// 认证请求
authUrl := "https://some_secure_site"
values := make(url.Values)
values.Set("login_email", "email")
values.Set("login_password", "password")
resp, err := client.PostForm(authUrl, values)
// 处理错误

// 处理resp

我需要在使用Go的App Engine中做类似的事情。App Engine使用urlfetch包而不是http包。

如何使用urlfetch包来实现这个功能?

英文:

This code works fine with regular Go code.

cookieJar, err := cookiejar.New(nil)
// error handling
client := &http.Client{Jar: cookieJar}

// authenticate request
authUrl := "https://some_secure_site"
values := make(url.Values)
values.Set("login_email", "email")
values.Set("login_password", "password")
resp, err := client.PostForm(authUrl, values)
// handle error

// process resp

I need to do something similar in App Engine using Go. App Engine uses urlfetch package instead of http package.

How do I use urlfetch package to do this?

答案1

得分: 3

urlfetch.Client 返回一个 *http.Client

func Client(context appengine.Context) *http.Client

所以只需在创建的客户端中设置 Jar。

client := urlfetch.Client(c)
client.Jar = cookieJar
...
英文:

urlfetch.Client returns a *http.Client

func Client(context appengine.Context) *http.Client

so simply set the Jar in the created client

client := urlfetch.Client(c)
client.Jar = cookieJar
...

huangapple
  • 本文由 发表于 2014年8月2日 05:40:40
  • 转载请务必保留本文链接:https://go.coder-hub.com/25089083.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定