我正在用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网络库处理http请求有什么好的资源吗?我找不到除了乔恩·佩蒂在海湾的斯卡拉的幻灯片。我想不出把带有查询字符串的url传入rapture uri的方法,因为它希望函数调用看起来像这样。
有什么想法吗?

最佳答案

在这种情况下,编译错误并不完全正确。您需要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]
}

关于scala - 使用Rapture Http获取请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26415147/

10-10 23:04