I bet requests (and curl) encodes the params as multipart/form-data, NOT 
query string.
Do the same: https://play.golang.org/p/L4YryKNjju4

remb...@gmail.com a következőt írta (2020. szeptember 19., szombat, 
20:44:54 UTC+2):

> I am trying to call a simple api by using golang. But, each time it sends 
> me html content of login page instead of actual data. But same get request 
> works from python and curl. 
>
> package main
>
> import (
> "fmt"
> "io/ioutil"
> "net/http"
> "os"
> )
>
> func main() {
>
> client := &http.Client{}
> req, err := http.NewRequest("GET", "https://www.lrn.com";, nil)
> if err != nil {
> os.Exit(1)
> }
>
> q := req.URL.Query()
> q.Add("phoneList", "XXXXXX")
> q.Add("output", "json")
> q.Add("version", "5")
> //req.URL.RawQuery = q.Encode()
> req.Header.Set("loginId", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
>
> fmt.Println(req.URL.String())
>
> resp, err := client.Do(req)
>
> if err != nil {
> fmt.Println("Errored when sending request to the server")
> return
> }
>
> defer resp.Body.Close()
> resp_body, _ := ioutil.ReadAll(resp.Body)
>
> fmt.Println(resp.Status)
> fmt.Println(string(resp_body))
> }
> Above script gives me html content of login page. But if i use python, it 
> works just fine. 
>
> import requests
>
> r=requests.get("https://www.lrn.com";, params = {'version':'5', 
> "phoneList":"XXXXXX", "output":"json"}, 
> headers={"loginId":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  "})
>
> print r.text
>
> Could someone please explain me what might be wrong in my golang script. 
>
> Ryan. 
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/95c62bc9-7772-4309-907d-09590dae9a25n%40googlegroups.com.

Reply via email to