获取Rapture Http的请求

时间:2014-10-16 22:46:21

标签: scala http rapture.io

我在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]

有什么想法吗?

1 个答案:

答案 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]
}