curl - 使用客户端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
解决方案
推荐阅读
- multithreading - Spark rdd.toDF() 线程安全吗?
- android - 如果从图库中选择图像后,如何设置要查看的图像,调用 onCreate 方法并且它已经在该视图中设置了图像?
- elasticsearch - 弹性搜索查询以获取索引中具有给定值的每 2 条记录之间的顺序差异
- kivy - KivyMD 无法与 PIL 模块一起运行
- docker - 如何防止远程机器访问在主机上运行的 Docker 容器?
- vscode-extensions - 如何在没有 TextMate 的情况下为我的语言着色?
- linux - 从主 shell 脚本运行多个子 shell 脚本文件
- haproxy - haproxy 将域重定向到 Web 应用程序
- javascript - JavaScript中的嵌套for循环问题
- r - 将行添加到小标题的更简单方法?(虚拟案例,真/假样本)