2016-07-11 1 views
0

In Locke, kann ich Post-Daten durch -d wie unter Beispiel
Wie Post Datenwert in Go-Wrk Befehl senden?

curl -X POST -d'{"accountID":"1"}' localhost:1234/geInfo 

Wie soll ich senden accountID Wert in go-wrk Befehl für eine Post-Anforderung senden?

+0

Von dem Link, den Sie gepostet: -m = "GET": die HTTP-Anfrage-Methode – TehSphinX

+0

Ich würde vermuten, dass Sie einfach schreiben -m = "POST" statt. – TehSphinX

+0

@TehSphinX -m = "POST" gibt nur die Methode an. Wie sende ich Parameter? – Kumaran

Antwort

0

Wenn ich mich nicht irre, wird es (zur Zeit) nicht unterstützt Postparameter zu übergeben.

Ich dachte, dass aus dem Code von go-wrk durch das Folgen des -m = "POST" -Parameters, der anders suggeriert. (Mit der Methode "POST" natürlich nicht, dass Sie auch Parameter übergeben bedeutet können)

Der Parameter in main.go analysiert wird: 19:

method   = flag.String("m", "GET", "the http request method") 

dann in single_node.go an Kunden weitergegeben: 16:

go StartClient(
    toCall, 
    *headers, 
    *method, 
    *disableKeepAlives, 
    responseChannel, 
    wg, 
    *totalCalls, 
) 

, wo es in der dritten Platz in "Meth" Variable empfangen wird (client.go: 14):

func StartClient(url_, heads, meth string, dka bool, responseChan chan *Response, waitGroup *sync.WaitGroup, tc int) { 
(: 55 client.go):

und dann hier verwendet

req, _ := http.NewRequest(meth, url_, nil) 
sets := strings.Split(heads, "\n") 

//Split incoming header string by \n and build header pairs 
for i := range sets { 
    split := strings.SplitN(sets[i], ":", 2) 
    if len(split) == 2 { 
     req.Header.Set(split[0], split[1]) 
    } 
} 

timer := NewTimer() 
for { 
    timer.Reset() 

    resp, err := tr.RoundTrip(req) 

    respObj := &Response{} 

    (...) 

    responseChan <- respObj 
} 

Wenn Post Parameter befahrbar sein würde, würden sie irgendwo in der Anfrage werden müssen setzen, wie Sie auf der golang http package Website Nachschlag kann:

func NewRequest(method, urlStr string, body io.Reader) (*Request, error) 

NewRequest gibt eine neue Anfrage mit einer Methode, einer URL und einem optionalen Text zurück.