[Spray Client]:Facebook图形API返回错误的内容类型

时间:2014-08-15 15:19:15

标签: scala facebook-graph-api spray spray-json spray-client

盯着Spray库,我试图向Facebook Graph API发出请求:

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 个答案:

答案 0 :(得分:3)

简单的解决方案是只添加一个接受标题,但我无法弄清楚如何:

pipeline( 
    Get("http://graph.facebook.com/v2.1/facebook/picture?redirect=false").withHeaders(Accept(MediaTypes.`application/json`)) 
  ) 

感谢关于goolge group的快速回答,我终于得到了正确的内容类型。