首页 > 解决方案 > 如何使用请求级客户端在akka http httpRequest中设置无缓存标头

问题描述

我有这样的卷曲请求

curl -X POST \
  http://0.0.0.0:8080/auth/realms/nestle/authz/protection/uma-policy/b952ad68-d23b-46ab-a456-b8598f4ffb28 \
  -H 'Authorization: Bearer '{token} \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{
        "name": "Any people manager",
        "description": "Allow access to any people manager",
        "scopes": ["read-private"],
        "roles": ["manager"]
}'

我想把它转换成httpRequest 我正在做这样的事情

val uri: String = "http://0.0.0.0:8080/auth/realms/nestle/authz/protection/uma-policy/"+resourceID val 授权 = headers.Authorization(OAuth2BearerToken(pat))

val uri: String = "http://0.0.0.0:8080/auth/realms/nestle/authz/protection/uma-policy/" + resourceID
                  val authorization = headers.Authorization(OAuth2BearerToken(pat))
                  
val jsonStr =
                    """{
                      |        "name": "Any people event-manager 2",
                      |        "description": "Allow access to any people event manager",
                      |        "scopes": ["read-private"],
                      |        "roles": ["manager","interpret/event_manager"]
                      |     }"""
val request = HttpRequest(HttpMethods.POST, uri, List(authorization), HttpEntity(ContentTypes.`application/json`, jsonStr.stripMargin.parseJson.toString()))

如何-H 'Cache-Control: no-cache' \在上面的代码中设置?

标签: httprequestakka-http

解决方案


-H 'Cache-Control: no-cache'是一个标头,所以它应该在的第三个参数中HttpRequest

final class HttpRequest(
  val method:   HttpMethod,
  val uri:      Uri,
  val headers:  immutable.Seq[HttpHeader],
  val entity:   RequestEntity,
  val protocol: HttpProtocol)

尝试类似的东西

val request = HttpRequest(
    HttpMethods.POST, 
    uri, 
    List(authorization, `Cache-Control`(`no-cache`)), 
    HttpEntity(ContentTypes.`application/json`, jsonStr.stripMargin.parseJson.toString())
)

推荐阅读