2015-11-02 3 views
5

Я не могу показаться, как это сделать в go.Передача параметров в запрос GET

Я следовал этому учебнику:

https://github.com/parnurzeal/gorequest

и я могу передать параметры, используя Header, который я думаю, это плохая идея.

Я в основном ищет go версии python

In [28]: import requests 

In [29]: r = requests.get("http://localhost:8000/get_result", params={"number": 40}) 

Ниже мой код для моего 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) 
} 

Я пытаюсь вызвать его, используя этот код:

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) 

} 

Вышеупомянутое похоже на python's:

In [34]: r = requests.get("http://localhost:8000/get_result", headers={"Number": 7}) 

Когда я использую метод Python (с использованием Params) для вызова API, я вижу /get_result?number=7 <nil> <nil> линии печатается как часть request object. Но я не вижу его в моей версии, поэтому я должен называть это неправильным. Что мне не хватает?

ответ

6

Похож, что вам нужно использовать Param.

Также в стандартной библиотеке NewRequest возвращает запрос с Struct членом URL, который имеет функцию Query, которую можно использовать для Add параметров запроса до выдачи запроса.

Смежные вопросы