你们能告诉我为什么以下提取形式适用于multipart/form-data
和x-www-form-urlencoded
请求吗
formFields("firstName"?, "age2"?, "sex", "vip"?) {
(firstName : Option[String], age2, sex, vip) =>
complete(firstName + "." + age2 + "." + sex + "." + vip)
}
但是这个看似相同的代码版本
formFields('firstName :: ("age2".as[Int]) :: ('sex?) :: ("VIP" ? false) :: HNil) {
(firstName : String, age2 : Int, sex : Option[String], vip : Boolean) =>
complete(firstName + "." + age2 + "." + sex + "." + vip)
}
multipart/form-data
对请求进行编码时不起作用。
服务器返回以下错误:
There was a problem with the requests Content-Type:
Field 'age2' can only be read from 'application/x-www-form-urlencoded' form content
我看到了一个调用堆栈,spray.httpx.unmarshalling.FormField.fail
但我的 Scala 技能不足以破译它。