Ошибка, которую вы получаете, дает вам понять, что тип status
не является ни String, ни java.io.Reader
. Вместо этого у вас есть список уже проанализированных ответов JSON, так как Dispatch уже выполнил всю тяжелую работу по синтаксическому анализу ответа в ответ JSON. Диспетчер имеет очень компактный синтаксис, который хорош, когда вы к нему привыкли, но поначалу он может быть очень тупым, особенно когда вы впервые приближаетесь к Scala. Часто вы обнаружите, что вам нужно погрузиться в исходный код библиотеки, когда вы впервые изучаете, чтобы увидеть, что происходит. Например, если вы посмотрите на исходный код dispatch-twitter, вы увидите, что метод timeline
фактически выполняет извлечение JSON для ответа:
def timeline = this ># (list ! obj)
То, что этот метод определяет, - обработчик отгрузки, который преобразует объект Response в объект JsonResponse, а затем анализирует ответ в список объектов JSON. Это довольно много происходит в одной строке. Вы можете увидеть определение операнда >#
в файле JsHttp.scala в модуле отправки http + json. Dispatch определяет множество обработчиков, которые выполняют закулисное преобразование в различные типы данных, которые затем можно передать в блок для работы. Просмотрите страницы StdOut Walkthrough и Common Tasks для некоторых обработчиков, но вам нужно погрузиться в исходный код различных модулей или Scaladoc, чтобы узнать, что там еще есть. 1016 *
Все это долгий путь к тому, что вы хотите, и я считаю, что по сути это:
val statuses = http(Status(screenName).timeline)
statuses.map(Status.text).foreach(println _)
Только вместо println
вы можете отправить его на свою веб-страницу любым удобным для вас способом. Проверьте Объект состояния для некоторых из различных предварительно собранных экстракторов для извлечения информации из ответа о состоянии.