3

盯着Spray Library,我尝试向 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严重依赖于内容类型进行解析等。

4

1 回答 1

3

简单的解决方案是添加一个接受标头,但我不知道如何:

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

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

于 2014-08-15T18:31:38.577 回答