Yad*_*nan 6 rest scala akka-http
我正在尝试使用Akka-Http来调用REST URL.我是从akka文档中关注这个例子的.使用此我可以进行其余的通话.但我无法找到如何添加自定义请求标头.我尝试使用ModeledCustomHeader,但仍然请求没有标题.这是我的例子.
final class ApiTokenHeader(token: String) extends ModeledCustomHeader[ApiTokenHeader] {
override def renderInRequests = false
override def renderInResponses = false
override val companion = ApiTokenHeader
override def value: String = token
}
object ApiTokenHeader extends ModeledCustomHeaderCompanion[ApiTokenHeader] {
override val name = "apiKey"
override def parse(value: String) = Try(new ApiTokenHeader(value))
}
Run Code Online (Sandbox Code Playgroud)
这就是我调用的方式,
def invokeHttpRequest(cmd: WSRequestCommand) = {
val s: HttpRequest = HttpRequest(uri = cmd.url).addHeader(ApiTokenHeader(cmd.apiKey))
sender ! http.singleRequest(s)
}
Run Code Online (Sandbox Code Playgroud)
而不是addHeader,我尝试使用addHeaders(),但Seq(ApiTokenHeader)不起作用,因为它给出了编译错误.
val s: HttpRequest = HttpRequest(uri = cmd.url, headers = Seq(ApiTokenHeader(cmd.apiKey)))
Run Code Online (Sandbox Code Playgroud)
错误:(55,66)类型不匹配; 发现:seq [com.myapp.http.core.ApiTokenHeader]必需:scala.collection.immutable.Seq [akka.http.scaladsl.model.HttpHeader] val s:HttpRequest = HttpRequest(uri = cmd.url,headers = Seq (ApiTokenHeader(cmd.apiKey)))//.addHeader(ApiTokenHeader(cmd.apiKey))
有人可以帮我为我的请求添加多个自定义标题吗?我在这做错了什么?
Rom*_*kyi 19
尝试一下,只需将HttpMessage上的方法与RawHeaders一起使用即可:
HttpRequest(GET, "/example.com/some")
.withHeaders(
RawHeader("X-CSRF-TOKEN", ...))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8890 次 |
| 最近记录: |