2016-04-25 6 views
0

У меня возникла проблема с получением параметра, отправленного из приложения Android в приложение go. Я вызвал r.FormValue (ключ), но он вернул null. Я хочу найти способ проверить, какие параметры доступны на стороне Go после того, как приложение Android отправило ему данные сообщения. Есть ли способ сделать это, получая все параметры без использования ключей?Make Go http.Response verbose all parameters

+0

Пожалуйста, поделитесь своим Android код запроса –

+1

' request.ParseForm() 'не работает? –

ответ

6

Структура Request в go имеет поле Form, которое заполняется параметрами запроса после того, как вызывается ParseForm().

форма содержит анализируемые данные формы, включая как параметры запроса поле URL, и POST или PUT поле data.This формы только доступны после ParseForm называется. Клиент HTTP игнорирует форму, а использует 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) 
} 
Смежные вопросы