我在Scala中使用Rapture构建API,并且在隐式不在范围内解决问题时遇到问题。这是我收到的错误的输出。
[error] /Users/Petesta/Documents/scala-project/src/main/scala/scala-project/main.scala:35: an implicit TimeSystem is required; please import timeSystems.numeric or timeSystems.javaUtil
[error] Error occurred in an application involving default arguments.
[error] val response = h.get()
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 5 s, completed Oct 16, 2014 3:36:10 PM
以下是失败的代码。
def getUser(userName: String) = {
val h = Http / "some_url" / "user" / userName /? Map('key -> "value")
val response = h.get()
}
我不知道该怎么办,因为我已尝试单独导入两个库,错误仍然相同。
我还添加了-Xlog-implicits
标志,以查看是否有其他因素导致错误但未输出其他信息。
使用rapture-net库进行HTTP请求的任何地方都有好的资源吗?除了Jon Pretty的幻灯片之外,我无法找到一个 Scala By The Bay 的幻灯片。我无法找到一种方法将带有查询字符串的url传入rapture-uri,因为它希望函数调用看起来像uri"url_dot_domain_with_query_strings".slurp[Char]
。
有什么想法吗?
答案 0 :(得分:2)
在这种情况下,编译错误并不完全正确。您需要2个导入中的1个,并且需要指定超时值。
def getUser(userName: String) = {
import timeSystems.numeric
val h = Http / "some_url" / "user" / userName /? Map('key -> "value")
val response = h.get(timeout = 5000L)
}
我真的不知道它有什么好的资源,但你的基本单一代码行是正确的。库的最大问题是关于所需导入的文档。但这是我发现对我有用的东西:
def getGoogle() = {
import rapture.codec._
import rapture.io._
import rapture.uri._
import rapture.net._
import encodings.`UTF-8`
uri"http://google.com".slurp[Char]
}