4

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?

1 Answer 1

6

Looks like you need to use Param to do this.

Also the standard library's NewRequest returns a Request struct with a member URL that has a function Query that you can use to Add parameters to your query before issuing the request.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.