मुझे यह नहीं लगता कि 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
के एक भाग के रूप में मुद्रित किया जा रहा है देखते हैं। लेकिन मैं इसे अपने जाने संस्करण में नहीं देख रहा हूं, इसलिए मुझे इसे गलत कहना चाहिए। मैं क्या खो रहा हूँ?