I cannot seem to figure how to do this in go.
I was following this tutorial:
https://github.com/parnurzeal/gorequest
and I can pass parameters using Header, which I think is a bad idea.
I am basically looking for go version of python
In [28]: import requests In [29]: r = requests.get("http://localhost:8000/get_result", params={"number": 40}) Following is my code for my REST API:
package main import ( "net/http" "strconv" "fmt" ) func make_result(w http.ResponseWriter, r *http.Request) { fmt.Println(r) err := r.ParseForm() if err != nil { panic(err) } number_string := r.Form["number"][0] // number_string := r.Header["Number"][0] header solution number, err := strconv.Atoi(number_string) if err != nil { panic(err) } fmt.Fprint(w, fmt.Sprint(number * 5)) } func main() { http.HandleFunc("/get_result", make_result) http.ListenAndServe("localhost:8000", nil) } I am trying to call it using this code:
package main import( "fmt" "reflect" "github.com/parnurzeal/gorequest" ) func main() { resp, body, errs := gorequest.New(). Get("http://localhost:8000/get_result"). Set("Number", "7"). // Changes the Header Type("form"). // These two lines appear Send(`{"number": 5}`). // to be irrelevant End() fmt.Println(errs) fmt.Println(resp) fmt.Println(body) } The above is similar to python's:
In [34]: r = requests.get("http://localhost:8000/get_result", headers={"Number": 7}) When I am using the python method (using params) to call the api, I see /get_result?number=7 <nil> <nil> line being printed as a part of request object. But am don't see it in my go version, so I must be calling it wrong. What am I missing?