Отправить данные JSON на сервер compojure с Android - PullRequest
2 голосов
/ 19 декабря 2011

Я пытаюсь отправить некоторые данные json с Android на сервер clojure / compojure

Однако я не могу правильно отправлять или получать данные, и я не совсем уверен, что проблема заключается в Android или compojure.

Вот код Java

String PATH = "http://localhost:8080/get_position";
DefaultHttpClient mClient = new DefaultHttpClient();

HttpGet httpget = new HttpGet(PATH);
HttpResponse response;
httpget.getParams().setParameter("measurements", measurements.toString());

response = mClient.execute(httpget);
HttpEntity entity = response.getEntity();

Где измерения - это объект JSON.

И основной код compojure для обработки маршрутизации

(defroutes main-routes
   (POST "/get_position" {params :params}
      (emit-json (find-location (:results (read-json (:measurements params))))))
   (route/not-found "Page not found"))

Запрос получен правильно, но я получаю ошибку, что params равен nil

java.lang.IllegalArgumentException: No implementation of method: :read-json-from of protocol: #'clojure.data.json/Read-JSON-From found for class: nil   

Кто-нибудь видит проблему с этим кодом или знает правильный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011

Я рекомендую использовать ring-json-params .

0 голосов
/ 19 декабря 2011

Я считаю, что карта параметров имеет строки в качестве ключей, а не ключевые слова.

...