Last active
August 21, 2024 05:11
-
Star
(125)
You must be signed in to star a gist -
Fork
(28)
You must be signed in to fork a gist
-
-
Save ijt/950790 to your computer and use it in GitHub Desktop.
Example of using http.Get in go (golang)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"fmt" | |
"io" | |
"log" | |
"net/http" | |
"os" | |
) | |
func main() { | |
if len(os.Args) != 2 { | |
fmt.Fprintf(os.Stderr, "Usage: %s URL\n", os.Args[0]) | |
os.Exit(1) | |
} | |
response, err := http.Get(os.Args[1]) | |
if err != nil { | |
log.Fatal(err) | |
} | |
defer response.Body.Close() | |
_, err := io.Copy(os.Stdout, response.Body) | |
if err != nil { | |
log.Fatal(err) | |
} | |
} |
Naveennani777, you see what it is, slice of bytes, you have to convert it to string, try this:
body, _ := ioutil.ReadAll(res.Body)
text := string(body)
fmt.Println(text)
Thanks alot sibyakin , Its working now.
thank you :)
Thank you :)
How to pass header in GET request
How to pass header in GET request
How to pass header in GET request
Here is an example:
client := &http.Client{}
apiURL := "https://myapi.url/data"
req, err := http.NewRequest("GET", apiURL, nil)
if err != nil {
return nil, err
}
// add header to request
req.Header.Add("authkey", "...")
// perform get request
res, err := client.Do(req)
You dont need the else
since your os.Exit'ing on condition of Line 12
@R4wm, done.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I tried in below way and got output:
package main
import (
"fmt"
"net/http"
// "io"
// "os"
// "encoding/json"
)
func main() {
url := "http://localhost:3000/api/v1/subnets"
res, err := http.Get(url)
if err != nil {
panic(err)
}
fmt.Println("response from GET request" ,res)
fmt.Println("output of pnmid", res.Body)
defer res.Body.Close()
// , err := io.Copy(os.Stdout, response.Body)
// fmt.Println("whole body",)
/* body, err := ioutil.ReadAll(res.Body)
if err != nil {
panic(err)
}*/
fmt.Println("response body" , res.Body)
// fmt.Println(body)
// var p Payload
// err := json.Unmarshal(body , &p)
}
After execution:
go run Sample_restcall.go:
response from GET request &{200 OK 200 HTTP/1.1 1 1 map[Access-Control-Allow-Origin:[*] Content-Type:[application/json; charset=utf-8] Set-Cookie:[dcbfef97e14c2a3cdf00a5
afc32d1e96=d9871f0ca4d0f07b0c6b84a4d79d8153; path=/; HttpOnly] X-Powered-By:[Express] Access-Control-Allow-Headers:[Content-Type] Access-Control-Allow-Methods:[PUT, GET,
POST, DELETE, OPTIONS] Content-Length:[676] Etag:[W/"2a4-JHwpbMIyxGxUzMU+0J4onQ"] Date:[Fri, 21 Jul 2017 15:24:47 GMT] Cache-Control:[private]] 0xc04203e300 676 [] fals
e false map[] 0xc042030400 }
output of pnmid &{0xc04203e2c0 {0 0} false 0x5cb870 0x5cb800}
response body &{0xc04203e2c0 {0 0} false 0x5cb870 0x5cb800}
I could see response status code as 200 , how to see response content and how to decode to normal json format.