트위터 스트리밍 API에서 응답 데이터를 읽는 방법 - POST 상태/필터? 연결을 설정했으며 200 개의 상태 코드가 수신되었지만 짹짹을 읽는 방법을 모르겠습니다. 나는 그들이 올 때 짹짹이나 인쇄하고 싶다.Playframework 및 Twitter 스트리밍 API
ws.url(url)
.sign(OAuthCalculator(consumerKey, requestToken))
.withMethod("POST")
.stream()
.map { response =>
if(response.headers.status == 200)
println(response.body)
}
편집 : 나는 stream()
를 호출이 솔루션
ws.url(url)
.sign(OAuthCalculator(consumerKey, requestToken))
.withMethod("POST")
.stream()
.map { response =>
if(response.headers.status == 200){
response.body
.scan("")((acc, curr) => if (acc.contains("\r\n")) curr.utf8String else acc + curr.utf8String)
.filter(_.contains("\r\n"))
.map(json => Try(parse(json).extract[Tweet]))
.runForeach {
case Success(tweet) =>
println("-----")
println(tweet.text)
case Failure(e) =>
println("-----")
println(e.getStackTrace)
}
}
}
설명해 주셔서 감사합니다. – mkovacek
나중에 연결을 닫을 수 있습니까? 다른 단어를 추적하기위한 여러 요청을 계획하고 있으며 특정 미래의 특정 연결을 닫고 싶습니다. – mkovacek
Akka 문서에서 [Dynamic Stream Handling] (http://doc.akka.io/docs/akka/2.4.8/scala/stream/stream-dynamic.html)을보십시오. 하나의 아이디어 : 공유 된 kill 스위치를 만든 다음'source.via (killSwitch.flow)'를 사용하여 스트림에 추가하십시오. killswitch에서'shutdown()'을 실행하면 연결을 닫아야합니다. – Mikesname