Командный объект Grails и 404, когда пробел внутри JSON из CURL

Мне достался контроллер. Когда сделан почтовый запрос, с хорошо структурированным документом JSON все в порядке.

Когда JSON содержит пробел в поле, возвращается 404. Однако, когда тот же запрос делается из расширения mozilla restclient, все работает.

В частности, запрос CURL:

curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Accept: application/json" \
     --data-binary "{
        "planCode" : "My Test App-standard"
    }" \
     "https://localhost/signupApi/v2/signup"

URLMapping:

  "/signupApi/v2/$action"{
        parseRequest = true // parse json, and assign to params
        controller = "signupApiSignup"
    }

Итак, почему пробел в curl может вызвать проблемы в теле запроса, который получает Grails?

Спасибо


person Menelaos    schedule 06.05.2015    source источник


Ответы (1)


Вы неправильно цитируете свои строки в своей оболочке. Используйте ' для своих параметров, если вы планируете использовать там «чувствительные» символы, такие как ". Или используйте \" внутри. Также curl может прочитать имя файла, если вы поставите перед ним префикс @ вместо фактических данных.

Тем не менее, в этом случае, возможно, проще всего цитировать с помощью '. Например.:

 ...
 --data-binary '{
    "planCode" : "My Test App-standard"
 }'
 ...
person cfrick    schedule 06.05.2015
comment
Спасибо, это сработало! Примем, как только истечет срок. - person Menelaos; 06.05.2015