Чтение json, возвращенного ошибкой 400 clojure

У меня есть веб-служба, которая отвечает на какой-то запрос на получение, что-то вроде этого: 2" rel="nofollow">http://developer.ehonest.com/api/v4/artist/reviews?api_key=N6E4NIOVYMTHNDM8J&id=ARH6W4X1187B99274F&format=json&results=1&start=2, если параметр в запросе неверен: http://developer.echonest.com/api/v4/artist/reviews?api_key=N6E4NIOVYMTHNDM8J&id=ARH6W4X1187B99274F&format=json&results=1&start=WRONG-STRING сервер отвечает 400, и некоторые json объясняют, что пошло не так.

Теперь в clojure я хочу прочитать json, чтобы точно знать, что пошло не так, я пытался с (clojure.java.io/reader неправильный URL-адрес), но он выдал исключение

Сервер вернул код ответа HTTP: 400 для URL:
http://developer.ehonest.com/api/v4/artist/reviews? api_key=N6E4NIOVYMTHNDM8J&id=ARH6W4X1187B99274F&format=json&results=1&start=e1 [Выброшенный класс java.io.IOException]

Как я могу прочитать json?


person Siscia    schedule 23.04.2012    source источник
comment
Моя большая проблема заключается в том, что clojure.java.io/reader выдал исключение, потому что он получил ошибку 400, но после этого (я предполагаю) я получаю json, который мне нужен... Проблема не в разборе json получить json после 400   -  person Siscia    schedule 24.04.2012


Ответы (1)


Иногда я просто действительно хочу посмотреть, что происходит по сети, и в таких случаях я запускаю Wireshark., анализатор сетевых пакетов. Вот как я бы использовал его в этом случае (но это мощное и гибкое программное обеспечение, вы можете делать с ним много отличных вещей):

  1. Начни это
  2. выберите Захват->Параметры (Ctrl-K)
  3. выберите сетевой интерфейс, для которого вы хотите захватить трафик
  4. введите host developer.echonest.com в качестве фильтра захвата
  5. нажмите кнопку начать захват

Затем взаимодействуйте со своей службой на сайте echonest.com — вы увидите входящие пакеты в окне Wireshark. Когда вы закончите, вернитесь в Wireshark и нажмите Capture->Stop (Ctrl-E).

В списке пакетов найдите тот, который начинается с GET /api/v4/arist/..., щелкните правой кнопкой мыши и выберите «Follow TCP Stream» — это покажет вам, что именно отправляется и принимается.

person Gert    schedule 23.04.2012