簡體   English   中英

如何在akka-http中讀取查詢參數?

[英]How to read query parameters in akka-http?

我知道akka-http庫在處理請求時對類類型進行編組和解組。但是現在,我需要讀取GET請求的請求參數。 我嘗試了parameter()方法,它返回ParamDefAux類型,但我需要這些值作為字符串類型

我在下面的問題中檢查答案。

  1. 如何在噴塗路由中解析獲取請求參數?

  2. 使用Akka HTTP查詢GET請求的參數(正式名稱為Spray)

但不能做我需要的。

請告訴我如何從請求中提取查詢參數。 或者如何從ParamDefAux提取所需的值

請求網址

http://host:port/path?key=authType&value=Basic345

獲取方法定義

 val  propName = parameter("key")
 val  propValue = parameter("value")
 complete(persistanceMgr.deleteSetting(propName,propValue))

我的方法聲明

def deleteSetting(name:String,value:String): Future[String] = Future{
 code...
}

對於像http://host:port/path?key=authType&value=Basic345嘗試

path("path") {
  get {
    parameters('key.as[String], 'value.as[String]) { (key, value) =>
      complete {
        someFunction(key,value)
      }
    }
  }
}

即使在代碼中不那么明確,您也可以從上下文中一次提取所有查詢參數。 您可以使用如下:

// Previous part of the Akka HTTP routes ...
extract(_.request.uri.query()) { params  =>
  complete {
    someFunction(key,value)
  }
}

如果您希望將query parameters提取為一個整體

extract(ctx => ctx.request.uri.queryString(charset = Charset.defaultCharset)) { queryParams =>
   //useyourMethod()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM