2015-11-02 35 views
5

goでこれを行う方法を理解できないようです。GETリクエストにパラメータを渡す

https://github.com/parnurzeal/gorequest

をし、私は悪いアイデアだと思うHeaderを、使用してパラメータを渡すことができます。私はこのチュートリアルを以下ました

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) 

} 
:私はこのコードを使用して、それを呼び出すようにしようとしています

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) 
} 

私は基本的にpython

In [28]: import requests 

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

goバージョンを探しています後、私のREST APIのための私のコードです

上記はPythonのものに似ています:

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

私はAPIを呼び出す(paramsは使用)Pythonの方法を使用していた場合、私はrequest objectの一部として印刷される/get_result?number=7 <nil> <nil>行を参照。しかし、私の行くバージョンでそれを見ていないので、私はそれを間違って呼び出す必要があります。私は何が欠けていますか?

答えて

6

これを行うにはParamを使用する必要があるようです。

また、標準ライブラリのNewRequestは、あなたがリクエストを発行する前に、あなたのクエリにAddパラメータに使用できる機能Queryを持つメンバーURLとリクエスト構造体を返します。

関連する問題