我有这个帖子请求,有两个问题。
1.具有headers
值。文档说它接收Seq[HttpHeader]
并传入Seq[RawHeader]
HttpHeader
,但它表示类型不匹配。为什么呢?
2.我传递了我要发布的数据,但HttpEntity.Default()
接收了Source[Bytestring]
。如何将data
转换为Source[Bytestring]
def post(data: String): Unit = {
val headers = Seq(RawHeader("X-Access-Token", "access token"))
val responseFuture: Future[HttpResponse] =
Http(system).singleRequest(
HttpRequest(
HttpMethods.POST,
"https://beta-legacy-api.ojointernal.com/centaur/user",
headers,
entity = HttpEntity.Default(data)
)
)
}
答案 0 :(得分:1)
我传入了一个Seq [RawHeader],它扩展了HttpHeader,但是它说它是' s 类型不匹配。为什么呢?
因为Seq[A]
中A
是不变的。
如何将数据转换为Source [Bytestring]
你不必。您可以使用HttpEntity
申请方法,该方法需要Array[Byte]
,并使用withHeaders
:
import akka.http.scaladsl.model._
def post(data: String): Unit = {
val responseFuture: Future[HttpResponse] =
Http(system).singleRequest(
HttpRequest(
HttpMethods.POST,
"https://beta-legacy-api.ojointernal.com/centaur/user",
entity = HttpEntity(ContentTypes.`application/json`, data.getBytes())
).withHeaders(RawHeader("X-Access-Token", "access token"))
)
}