我编写此代码以使用http4s客户端库对REST Web服务进行POST调用
val client = SimpleHttp1Client()
val form = UrlForm("username" -> userName, "password" -> password)
val uri = Uri.fromString(url).valueOr(throw _)
val list = List(`Content-Type`(MediaType.`application/json`), Accept(MediaType.`application/json`))
val req = POST(uri, form).map(_.putHeaders(list :_*))
try {
val result = client.expect[String](req).unsafePerformSync
Some(result)
} catch {
case e : Throwable => println(e.getMessage); None
}
Run Code Online (Sandbox Code Playgroud)
现在,代码获得了400 Bad Request错误,我不知道为什么.我无法在上面的代码中打印整个错误的主体.
当我通过POSTMAN进行相同的REST调用时,我可以看到400 Bad request error body
{
"errors": [
"password: field is required",
"username: field is required"
]
}
Run Code Online (Sandbox Code Playgroud)
如何在代码中打印整个错误主体?
此外,在postman中,当我设置Content-Type和Accept标头时,后调用成功.在上面的代码中,我设置相同的2个标头和相同的json主体但仍然此代码获得400错误.
val list = List[Header](Header("Accept", "application/json"), Header("Content-Type", "application/json"))
val …Run Code Online (Sandbox Code Playgroud) 我有以下代码片段,常规for循环工作正常。但是对于理解会抛出错误
println("Using for loop")
for( (key, value) <- orec.groupBy(x => x.continent) )
{
println(key + value.length )
}
println("Using for comprehension")
for{
(key, value) <- orec.groupBy(x => x.continent)
println(key + value.length )
} yield (key,value)
Run Code Online (Sandbox Code Playgroud)
错误消息是
Error:(84, 5) '<-' expected but '}' found.
} yield (key,value)
Run Code Online (Sandbox Code Playgroud)
我不明白代码有什么问题。请协助解决问题
我有一个简单的正则表达式val emailRegex = "\\w+@\\w+\\.\\w+".r,可以匹配简单的电子邮件(当然,不是用于生产)。当我运行以下代码时:
println(email match {
case emailRegex(_) => "cool"
case _ => "not cool"
})
printlnemailRegex.pattern.matcher(email).matches())
Run Code Online (Sandbox Code Playgroud)
它打印not cool和true。添加锚点也无济于事:"^\\w+@\\w+\\.\\w+$".r给出相同的结果。但是当我加上括号时,"(\\w+@\\w+\\.\\w+)".r它会打印cool和true。
为什么会这样?
我尝试使用 scala 中已声明的变量迭代 for 循环,但收到错误“不是有效的块语句”
我已经删除了变量声明行并且它工作正常。
object FirstObject
{
def main(args:Array[String])
{
var i:Int,j:Int; // variable declaration
for(i <- 1 to 10; j <- 1 to 5)
{
println(s"($i, $j)")
}
}
}
Run Code Online (Sandbox Code Playgroud)
预期结果看起来像这样
(1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (2, 1) (2, 2) (2, 3) (2, 4) (2, 5) (3, 1)......
在使用时Future我看到人们使用
Future{
Thread sleep 500
promise success "You've just completed the promise with me in it!"
}
Run Code Online (Sandbox Code Playgroud)
看看 的定义Future,我可以看出 Future 是一个特质
但是当我制作自己的特质时,示例:
trait t{}
def main(args: Array[String]): Unit = {
t{
println("Test")
}
}
Run Code Online (Sandbox Code Playgroud)
它无法编译。为什么?
object main {
def main(args: Array[String]): Unit = {
for (
i <- 1 to 10
if i % 2 == 0;
j <- 2 to 8
if j % 2 == 1;
) {
println(s"i: ${i}, j: ${j}")
val t = i + j
println(s"t: ${t}")
}
}
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨:illegal start of simple pattern.
如果我删除第二个分号:
object main {
def main(args: Array[String]): Unit = {
for (
i <- 1 to 10
if i % 2 == 0;
j …Run Code Online (Sandbox Code Playgroud)