首页 > 解决方案 > 使用客户端api时如何在akka http httpRequest中添加多个参数

问题描述

我有这样的卷曲请求

curl -X POST \
  http://${host}:${port}/auth/realms/${realm}/protocol/openid-connect/token \
  -H "Authorization: Bearer ${access_token}" \
  --data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" \
  --data "audience={resource_server_client_id}"

我正在尝试像这样在akka http中映射这个请求

val uri: String = "http://0.0.0.0:8080/auth/realms/nestle/protocol/openid-connect/auth"
          val authorization = headers.Authorization(OAuth2BearerToken(accessToken))
          val post_body = "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket&audience=interpret&permission=event resource"
          val request = HttpRequest(HttpMethods.POST, uri, List(authorization), HttpEntity(ContentTypes.`application/x-www-form-urlencoded`, post_body))
          val responseFuture = Http().singleRequest(request)


responseFuture
            .onComplete {
              case Success(res) => println(res)
                Unmarshal(res.entity.toStrict(5 seconds)).value.map { result =>
                  val responseStr = result.data.utf8String
                  log.info(" response {}", responseStr)
          }
case Failure(e)=>
}
       

在这里我得到一个回复​​,说"invalid request"当我运行 curl 脚本时它工作正常

我怎样才能添加多个参数HttpRequest

标签: curlakkaakka-http

解决方案


推荐阅读