[Spray Client]: API графа Facebook возвращает неправильный тип контента
Начиная с библиотеки Spray, я попытался сделать запрос к API Graph Facebook:
val responseF: Future[HttpResponse] = pipeline(Get("http://graph.facebook.com/v2.1/facebook/picture?redirect=false"))
def receive = {
case _ =>
val originalSender = sender()
responseF onComplete{
case Success(response) =>
log.info(response.toString)
originalSender ! response.toString
log.info( """|Response for GET request
|status : {}
|headers: {}
|body : {}""".stripMargin,
response.status.value, response.headers.mkString("\n ", "\n ", ""), response.entity.asString)
case Failure(error) =>
log.error(error, "Could not get Facebook stuff")
originalSender ! "not working"
}
}
Основная проблема заключается в том, что тип содержимого ответа Content-Type: text/javascript; charset=UTF-8
вместо ожидаемого application/json
Что именно не так с моей просьбой?
Как Spray
сильно зависит от типа содержимого для анализа и т. д.
1 ответ
Простым решением было просто добавить заголовок подтверждения, но я не мог понять, как:
pipeline(
Get("http://graph.facebook.com/v2.1/facebook/picture?redirect=false").withHeaders(Accept(MediaTypes.`application/json`))
)
Благодаря быстрому ответу на группу goolge я наконец-то получил правильный тип контента.