2013-08-05 94 views
0

是request.param(...)這是我的控制檯:凡在圍棋

GET http://localhost:8080/api/photos.json?token=ABCDEFGHIJKLMNOPQRSTUVWXYZ 

200 OK 
    0 
jquery.js (line 8526) 
|Params| Headers Response JSON 
token ABCDEFGHIJKLMNOPQRSTUVWXYZ 

我在PARAMS標籤。我如何訪問這個,例如登錄到我的終端窗口。

在節點:request.param( '令牌')

+0

爲什麼jQuery和節點嗎?這是一個圍棋問題嗎? –

+0

OP,你應該接受一個答案(巴巴的一個,它比我好)。 –

回答

2

只需使用func (*Request) FormValue

FormValue返回查詢的命名組件的第一個值。 POST和PUT正文參數優先於URL查詢字符串值。 FormValue根據需要調用ParseMultipartForm和ParseForm。要訪問同一個鍵的多個值,請使用ParseForm。

簡單的服務器

package main 

import (
    "fmt" 
    "net/http" 
) 

func main() { 
    http.HandleFunc("/", home) 
    http.ListenAndServe(":4000", nil) 

} 

func home(w http.ResponseWriter , r *http.Request) { 
    fmt.Fprint(w, "<html><body><h1>Hello ", r.FormValue("token") , "</h1></body></html>") 
} 

訪問localhost:4000/photos.json?token=ABCDEFGHIJKLMNOPQRSTUVWXYZ,你會得到

Hello ABCDEFGHIJKLMNOPQRSTUVWXYZ 
+1

+1,因爲我不知道這個函數,總是叫'hr.Form'。這是一個新功能嗎? –

+0

它是'request.Form',很多人把請求作爲'r'作爲'r * http.Request' – elithrar

0

我假設你有一個http.Request。我們假設它叫做hr

然後,你可以做

hr.ParseForm() 

之後,你可以使用hr.Form這是這樣定義的:

// Form contains the parsed form data, including both the URL 
// field's query parameters and the POST or PUT form data. 
// This field is only available after ParseForm is called. 
// The HTTP client ignores Form and uses Body instead. 
Form url.Values 

其中url.Values是地圖:

type Values map[string][]string 

這裏是一個使用解析表單的例子,我只對第一個v感興趣ALUE對於一個給定的名字:

func getFormValue(hr *http.Request, name string) string { 
    if values := hr.Form[name]; len(values) > 0 { 
     return values[0] 
    } 
    return "" 
}