google app engine - Getting *http.Request from Context on AppEngine -


i'm using app engine, , creating context.context (golang.org/x/net/context) variable *http.request.

    c := appengine.newcontext(r) 

i'm passing context around , i'm trying figure out way *http.request context.context in order log http.request.

i search on doc couldn't find solution.

appengine.newcontext(r) returns value of type appengine.context. not same context type of golang.org/x/net/context package!

having value of type appengine.context, can't *http.request used create it. if need *http.request, have take care of passing around (you have it, since use create context).

note appengine.context (which interface type) has method context.request(), internal use only, not exported call it. , returns interface{} , not *http.request. if returns value holding *http.request, can't rely on method may changed or removed in future versions.

passing *http.request along appengine.context is best way. trying context "wizardry" , might break new sdk release. if want simplify it, may create wrapper struct , pass wrapper instead of 2 values, example:

type wrapper struct {     c appengine.context     r *http.request } 

and helper func:

func createctx(r *http.request) wrapper {     return wrapper{appengine.newcontext(r), r} } 

Comments

Popular posts from this blog

yii2 - Yii 2 Running a Cron in the basic template -

asp.net - 'System.Web.HttpContext' does not contain a definition for 'GetOwinContext' Mystery -

wso2esb - How to concatenate JSON array values in WSO2 ESB? -