For what it's worth, a friend of mine advised me to use maps. https://blog.golang.org/go-maps-in-action <https://l.facebook.com/l.php?u=https%3A%2F%2Fblog.golang.org%2Fgo-maps-in-action&h=1AQGQxC4Y>
But, alas, I'm not enough of a guru to do anything fancy. On Tue, Dec 13, 2016 at 2:16 PM, Justin Israel <justinisr...@gmail.com> wrote: > Hi, > > While others have been talking about headers, I notice that you are using > the python requests 3rd party library, and referring to the "params" > keyword arg which is meant to pass query string values in your GET request. > > I would think the equivalent in Go would be to: > > > 1. Build the equivalent of the python "params" dictionary using > url.Values <https://golang.org/pkg/net/url/#Values> > 2. Build your *url.Url <https://golang.org/pkg/net/url/#URL>, with > that url.Values object > 3. Build an *http.Request <https://golang.org/pkg/net/http/#Request> > with that *url.Url > 4. Run your GET request via http.Client.Do() > <https://golang.org/pkg/net/http/#Client.Do> > > Justin > > > On Wed, Dec 14, 2016 at 8:33 AM 'Chris Manghane' via golang-nuts < > golang-nuts@googlegroups.com> wrote: > >> I see, well that makes the compiler error make more sense. You're trying >> to declare a function type within a function. Use a function literal >> instead, for example: `doIT := func(p Params) string { ... }`. >> >> On Tue, Dec 13, 2016 at 11:18 AM, Betsy Lichtenberg <bet...@nestlabs.com> >> wrote: >> >> The expression is inside of the main function. >> >> package main >> >> import ( >> "fmt" >> "strings" >> "net/http" >> "io/ioutil" >> ) >> >> func main() { >> >> url := "https://developer-api.nest.com/structures" >> >> payload := strings.NewReader("code=aaaaa&client_id=bbbb&client_secret= >> cccc&grant_type=authorization_code") >> >> req, _ := http.NewRequest("GET", url, payload) >> >> req.Header.Add("content-type", "application/json") >> >> type Params struct { >> auth string >> } >> >> func doIt(p Params) string { >> return p.auth >> } >> >> doIt(Params{auth: xxxx}) >> >> res, _ := http.DefaultClient.Do(req) >> >> defer res.Body.Close() >> body, _ := ioutil.ReadAll(res.Body) >> >> fmt.Println(res) >> fmt.Println(string(body)) >> >> } >> >> On Tue, Dec 13, 2016 at 11:13 AM, Chris Manghane <cm...@google.com> >> wrote: >> >> That error seems to be from writing that expression outside of a >> function. There's no problem with structs supporting string fields: >> https://play.golang.org/p/YeP2qhRdxp. >> >> On Tue, Dec 13, 2016 at 10:45 AM, Betsy Lichtenberg <bet...@nestlabs.com> >> wrote: >> >> Do structs support strings? I tried this: >> >> type Params struct { >> auth string >> } >> >> func doIt(p Params) string { >> return p.auth >> } >> >> doIt(Params{auth: xxxx}) >> >> >> I'm getting these errors: >> >> betsyl-macbookpro:~ betsyl$ go run get1.go >> >> # command-line-arguments >> >> ./get1.go:25: syntax error: unexpected doIt, expecting ( >> >> ./get1.go:29: syntax error: unexpected literal .2, expecting comma or } >> >> On Tue, Dec 13, 2016 at 7:11 AM, Val <delepl...@gmail.com> wrote: >> >> Hello Betsy >> There is no "passing optional arguments by name" in go. >> >> This link [1] has an overview what what can or can't be done for optional >> params : >> - the *Functional options* technique. >> - or you may define a struct as parameter, then call it with only the >> fields you're interested in : [2] >> This implies that "the zero values must be meaningful (i.e. acceptable in >> your context : nil, 0, etc.)" >> >> things := Things{amount: 13} >> show(things) >> >> [1] http://stackoverflow.com/questions/2032149/optional-parameters >> [2] https://play.golang.org/p/yiKzomwTKM >> >> On Tuesday, December 13, 2016 at 6:46:23 AM UTC+1, bet...@google.com >> wrote: >> >> Hi, >> >> In Python, I can include params like this: >> >> ===================== >> >> *params = {'auth': 'XXXXXXXX'}* >> >> response = requests.request("GET", url, data=payload, headers=headers, >> *params=params*) >> >> ===================== >> >> Any pointers on how Golang does this? >> >> Thanks, >> Betsy >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.