2015-11-02 6 views
5

मुझे यह नहीं लगता कि go में ऐसा कैसे किया जाए।अनुरोध प्राप्त करने के लिए पैरामीटर पास करना

मैं इस ट्यूटोरियल पीछा कर रहा था:

https://github.com/parnurzeal/gorequest

और मैं Header है, जो मुझे लगता है कि एक बुरा विचार है का उपयोग कर मानकों को पारित कर सकते हैं।

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

In [28]: import requests 

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

की go संस्करण के लिए देख रहा हूँ के बाद मेरी REST API के लिए मेरे कोड है

उपर्युक्त पाइथन के समान है:

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

जब मैं अजगर विधि (पैरामीटर का प्रयोग करके) API कॉल करने के लिए उपयोग कर रहा हूँ, मैं /get_result?number=7 <nil> <nil> लाइन request object के एक भाग के रूप में मुद्रित किया जा रहा है देखते हैं। लेकिन मैं इसे अपने जाने संस्करण में नहीं देख रहा हूं, इसलिए मुझे इसे गलत कहना चाहिए। मैं क्या खो रहा हूँ?

उत्तर

6

ऐसा लगता है कि आपको ऐसा करने के लिए Param का उपयोग करने की आवश्यकता है।

इसके अलावा मानक लाइब्रेरी की NewRequest रिटर्न एक सदस्य URL एक समारोह Query है कि आप अनुरोध जारी करने से पहले आपकी क्वेरी के लिए Add मापदंडों का उपयोग कर सकते है के साथ एक अनुरोध struct।

संबंधित मुद्दे