2016-04-25 11 views
0

Ich habe ein Problem bekommen einen Parameter von Android App in Go-Anwendung gesendet. Ich habe r.FormValue (key) aufgerufen, aber es hat null zurückgegeben. Ich möchte herausfinden, welche Parameter auf der Go-Seite verfügbar sind, nachdem die Android-App die Postdaten an sie gesendet hat. Gibt es eine Möglichkeit dies zu tun, alle Parameter ohne Schlüssel zu bekommen?Make Go http.Response ausführliche alle Parameter

+0

Bitte –

+1

Android-Anforderungs-Code teilen ' request.ParseForm() 'funktioniert nicht? –

Antwort

6

Die Request Struktur in gehen hat ein Form Feld, das mit Anforderungsparametern aufgefüllt wird, nachdem ParseForm() aufgerufen wird.

Formular enthält die analysierte Formulardaten, einschließlich der Abfrageparameter des URL-Feld und der POST oder PUT Form data.This Feld ist nur verfügbar, nachdem ParseForm genannt wird. Der HTTP-Client ignoriert Formular und verwendet stattdessen Körper.

Sie könnten versuchen, den folgenden Code hinzugefügt, nachdem das Empfangen einer Anforderung:

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

    //.... 
} 
2

Wenn dies für das Debuggen ist, können Sie 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) 
}