5
我寫了一些簡單的clojure代碼來訪問twitter流api。我的代碼本質上是一樣的,在Twitter的API文檔中描述的例子的代碼:使用clojure獲取「java.io.EOFException:JSON錯誤」twitter-api
(def ^:dynamic *custom-streaming-callback*
(AsyncStreamingCallback. (comp println #(:text %) json/read-json #(str %2))
(comp println response-return-everything)
exception-print))
(defn start-filtering []
(statuses-filter :params {:follow 12345}
:oauth-creds *creds*
:callbacks *custom-streaming-callback*))
我以下關於特定用戶鳴叫和使用OAuth進行認證(未示出)。當我運行開始過濾方法並且用twitter打開一個連接時,一切都很適合咒語,但是如果流在一段時間內(30秒左右)處於非活動狀態,也就是說沒有關於這個特定用戶的推文正在下沉,發生以下錯誤:
#<EOFException java.io.EOFException: JSON error (end-of-file)>
我從推特文檔中假設,當使用流連接時,twitter會使流無限期打開。我必須做出一些不正確的假設。我目前正在探索clojure twitter-api代碼以瞭解發生了什麼,但我認爲更多的眼睛會幫助我更快地瞭解這一點。
這是一個好主意,在twitter-api的github問題跟蹤器上打開一個問題。除非作者投身SO並看到這一點,否則任何人都不會知道如何解決這個問題。 – Rayne 2012-04-28 04:17:40