Я не особо в теме но подкину идей вдруг что нибудь проканает.
1) Попробуй юзать Content-Type: multipart/form-data
Вот что пишут в википедии
еще одна годная статья
Пример такого запроса.
POST [url]http://www.site.ru/news.html[/url] HTTP/1.0\r\n
Host: [url]www.site.ru\r\n[/url]
Referer: [url]http://www.site.ru/index.html\r\n[/url]
Cookie: income=1\r\n
Content-Type: multipart/form-data; boundary=1BEF0A57BE110FD467A\r\n
Content-Length: 209\r\n
\r\n
--1BEF0A57BE110FD467A\r\n
Content-Disposition: form-data; name="login"\r\n
\r\n
Petya Vasechkin\r\n
--1BEF0A57BE110FD467A\r\n
Content-Disposition: form-data; name="password"\r\n
\r\n
qq\r\n
--1BEF0A57BE110FD467A--\r\n
2) вроде бы не вижу ничего страшного чтобы засунуть json в аргумент формы
3) И еще интересно проверка на легитимность только для post запросов производится? что если попробовать put запрос?
Первое что пришло в голову, сорри если где затупил.