2

I am new to go so this probably elementary. I have a function to retrieve json from a URL and need to pass a variable integer within the URL. How do append a variable onto the end of another variable? Here is my code:

    type content struct {

StationTitle string `json:"StationTitle"`
}

func main() {

resp := content{}
getContent("http://foo.foo2.foo3=variableInteger", &resp)
println(resp.StationTitle)
}

// fetch json

func getContent(url string, target interface{}) error {
r, err := http.Get(url)
if err != nil {
return err
}
defer r.Body.Close()

return json.NewDecoder(r.Body).Decode(target)
}

2 Answers 2

7

Using fmt.Sprintf

getContent(fmt.Sprintf("http://foo.foo2.foo3=%d", variableInteger), &resp)
Sign up to request clarification or add additional context in comments.

Comments

3

I would use the net/url package to build your URL.

    package main

    import ("fmt"
        "net/url"
        )


    func main() {
        query := make(url.Values)
        query.Add("foo3", "123")
        url := &url.URL{RawQuery: query.Encode(), Host: "foo", Scheme: "http"}
        fmt.Println(url.String())

    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.