2016-09-29 18 views
5

Tôi biết các thư viện akka-http nguyên soái và không đối xứng với loại lớp trong khi xử lý yêu cầu. Nhưng bây giờ, tôi cần phải đọc yêu cầu tham số của yêu cầu GET. Tôi đã thử phương pháp parameter() và Nó trả về loại ParamDefAux nhưng tôi cần những giá trị đó dưới dạng các loại dâyLàm thế nào để đọc các tham số truy vấn trong akka-http?

Tôi kiểm tra câu trả lời ở các câu hỏi bên dưới.

  1. How can I parse out get request parameters in spray-routing?

  2. Query parameters for GET requests using Akka HTTP (formally known as Spray)

nhưng không thể làm những gì tôi cần.

Vui lòng cho tôi biết cách tôi có thể trích xuất tham số truy vấn từ yêu cầu. HOẶC Làm thế nào tôi có thể trích xuất giá trị được yêu cầu từ ParamDefAux

Request URL

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

định nghĩa phương pháp Nhận

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

tờ khai phương pháp của tôi

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

Nó sẽ hoạt động, bạn đã thử chưa? đường dẫn ("truy vấn") { thông số ('name.as [String]) {name => hoàn thành (tên) } } ~ –

Trả lời

10

Đối với yêu cầu như http://host:port/path?key=authType&value=Basic345 thử

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

Để làm việc này, 'import akka.http.scaladsl.server.Directives. _' cần phải ở đó. – akauppi

Các vấn đề liên quan