Возвращает только первый параметр в запросе нескольких параметров - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть следующий запрос API curl:

curl --request GET http://127.0.0.1/juris?d=11111&a=22222

Внутри моего http handler function, который имеет аргументы: w http.ResponseWriter,r *http.Request У меня есть код:

defer r.Body.Close()
keys,ok := r.URL.Query()["d"]   
if !ok{
 respondWithError(w,http.StatusBadRequest,"InvalidQuery")
 return
}
dnisQuery := string(keys[0])
akeys,aok := r.URL.Query()["a"]     
if !aok{
 respondWithError(w,http.StatusBadRequest,"InvalidQuery")
 return
}
aniQuery := string(akeys[0])

Он проверяет и передает правильное значение для первого параметра запроса d, но не работает для второго параметра a с InvalidQuery

Не уверен, что он делает неправильно.

1 Ответ

0 голосов
/ 17 сентября 2018

Если вы введете

curl --request GET http://127.0.0.1/juris?d=11111&a=22222

, оболочка увидит

curl --request GET http://127.0.0.1/juris?d=11111 & a=22222

и выполнит первую команду в качестве фонового задания, поэтому часть a была проигнорирована.(Это фактически привело к тому, что оболочка установила переменную a в 22222.) Чтобы она заработала, вам нужно экранировать свой URL:

curl --request GET 'http://127.0.0.1/juris?d=11111&a=22222'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...