scala - 使用喷雾发送带有 json 的帖子?

标签 scala spray

抱歉,我无法完成这项工作:我需要向帖子中添加一些 json,因此请遵循文档:http://spray.io/documentation/1.1-M8/spray-httpx/request-building/ :

import scala.util.{Success, Failure}
import akka.actor.{Props, ActorSystem}
import spray.can.client.DefaultHttpClient
import spray.client.HttpConduit
import spray.httpx.SprayJsonSupport
import spray.http._
import spray.json.JsonParser._
import spray.json._
import HttpMethods._
import HttpHeaders._
import MediaTypes._
import spray.httpx.RequestBuilding._
import scala.concurrent.ExecutionContext.Implicits.global

...

val req = HttpRequest(method = POST, uri = "/api/1.0/users/ping.json", entity = HttpEntity(`application/json`,"""{ "key"="whatever" }"""))

它永远不会编译:

overloaded method value apply with alternatives:
[error]   (optionalBody: Option[spray.http.HttpBody])spray.http.HttpEntity <and>
[error]   (buffer: Array[Byte])spray.http.HttpEntity <and>
[error]   (string: String)spray.http.HttpEntity
[error]  cannot be applied to (spray.http.MediaType, String)
[error]     val req = HttpRequest(method = POST, uri = "/api/1.0/users/ping.json", entity = HttpEntity(`application/json`,"""{ "key"="whatever"}"""))

最佳答案

遇到了同样的问题,在这里找到了解决方案:

https://github.com/spray/spray-json/blob/master/src/main/scala/spray/json/AdditionalFormats.scala#L30-41

这终于对我有用了:

import spray.httpx.SprayJsonSupport
import spray.json.AdditionalFormats

object Client extends SprayJsonSupport with AdditionalFormats {
    val email = "..."
    val password = "..."
    val pipeline = sendReceive       
    pipeline(Post("http://something.com/login", s"""{
        "email": "$email",
        "password": "$password"
    }""".asJson.asJsObject))
}

关于scala - 使用喷雾发送带有 json 的帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18623356/

相关文章:

scala - 如何避免在scala中使用Monad Transformers的阶梯?

scala - scala中是否有指数函数

scala - Spray.io 如何与 scala 2.11.1 akka 2.3.2 配合使用

parsing - Scala PacktRat 解析器将运算符限制为恰好 1

Scala: "map"vs "foreach"- 在实践中是否有任何理由使用 "foreach"?

json - 我使用Scalaj请求时出现SocketTimeoutException

akka - 使用文件上传 Actor 进行喷射路由

scala - Spray-json序列化继承案例类

json - 如何为 spray+akka actor 设置隐式 json 转换

scala - 猫 : mapping over tuples with the same applicative