2016-04-25 6 views
0

アンドロイドアプリからgoアプリケーションにパラメータを送信する際に問題が発生しました。 r.FormValue(key)を呼び出しましたが、nullを返しました。私はアンドロイドアプリがポストデータを送信した後、Go側で利用可能なパラメータを確認する方法を探したい。キーを使わずにすべてのパラメータを取得する方法はありますか?Go http.Responseですべてのパラメータを冗長に表示

+0

'Androidのリクエストコード –

+1

を共有してください。 request.ParseForm() 'は動作していませんか? –

答えて

6

goのRequest構造体にはが呼び出された後に要求パラメータが設定されたFormフィールドがあります。

フォームは、URLフィールドの両方 クエリパラメータやPOSTなど、解析されたフォームデータを、含まれているか、フォームdata.ThisフィールドをPUT ParseFormが呼び出された後にのみ が利用可能です。 HTTPクライアントはFormを無視し、代わりに がBodyを使用します。

あなたは要求を受信した後、次のコードを追加してみてください:

func(w http.ResponseWriter, request *http.Request) { 
    request.ParseForm() 
    log.Printf("%v",request.Form) 

    //.... 
} 
2

これはデバッグ用であれば、あなたはDumpRequestを使用することができます。

func(w http.ResponseWriter, r *http.Request) { 
    dump, err := httputil.DumpRequest(r, true) 
    if err != nil { 
     http.Error(w, fmt.Sprint(err), http.StatusInternalServerError) 
     return 
    } 
    log.Printf("%s", dump) 
}