Почему apache не передает мой запрос cURL в php, если в данных есть скобки []? - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь протестировать реализацию JSON RPC, публикуя сообщения из curl.Спецификация json roc требует, чтобы параметры были массивом с использованием скобок.Следующий пост никогда не попадает в php.Кажется, что Apache это ловит.

curl <url> -i -X POST -H "content-type: application/json" --data '{"method" : "validateSubdomain", "params" : ["test"]}'

Я получаю следующий ответ:

HTTP / 1.1 204 Нет содержимого

Дата: ср, 07 дек 2011 21:21:42 GMT

Сервер: Apache / 2.2.15 (Unix) PHP / 5.3.8-ZS5.5.0 mod_ssl / 2.2.15 OpenSSL / 0.9.8o

X-Powered-By: PHP / 5.3.8-ZS5.5.0 ZendServer / 5.0

Set-Cookie: ZDEDebuggerPresent = php, phtml, php3;path = /

Content-Length: 80

Content-Type: text / html

Если я опускаю скобки, я получаю ошибки из своего приложения phpозначает, что это проходит через.Только когда у меня есть эти скобки, я получаю ответ 204.

Я использую ZendServer / apache.Есть идеи?Спасибо.

1 Ответ

2 голосов
/ 20 июня 2012

Если вы работаете из Windows cmd, то вызов должен выглядеть следующим образом:

curl -X POST --data "{\"method\":\"makePayment\",\"params\":{\"recipient\":\"Penny Adams\",\"amount\":175.05},\"id\":\"0001\",\"jsonrpc\":\"2.0\"}" <url>

Параметры Jsons работают в именованных парах, а Zend хочет получить все данные метода, версии id и json.

Что я заметил, так это то, что в win cmd вы должны избегать всего, что "внутри --data" ", иначе оно читается по частям

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...