我需要一个成熟的HTTP客户端库,它是scala惯用的,简洁的用法,简单的语义.我查看了Apache HTTP和Scala Dispatch以及许多新的库,这些库承诺提供惯用的Scala包装.Apache HTTP客户端肯定需要冗长,而Dispatch很容易混淆.
什么是适合Scala使用的HTTP客户端?
所以我对 Scala 真的很陌生,我试图弄清楚如何调用 Web 服务并在 Json 对象中获取响应。我遇到了各种各样的问题。可能是因为我犯了一个错误。但是我被卡住了,所以也许有人可以帮助我。
经过一番搜索发现可以定义一个函数来调用API(其实我只是找到了调用方法的代码,并为它定义了一个函数)
def GetUrlContent(url: String): String ={
val result = scala.io.Source.fromURL(url).mkString
return result.toString()
}
Run Code Online (Sandbox Code Playgroud)
所以我调用这个函数,并将响应转换为文本。
val response: String = GetUrlContent(url).toString()
Run Code Online (Sandbox Code Playgroud)
我知道有点多余,但我尝试了一切。但在这里我遇到了问题。我试图将整个数据放入一个字符串 RDD 中,这样我就可以查找特定的行(因为我真的很新,还不能将数据映射到 Json)。我用了这个语句:
response.reduce((x,y) => x + y)
Run Code Online (Sandbox Code Playgroud)
然而,这给出了错误:Error:(22, 30) type mismatch; found : Int required: Char response.reduce((x,y) => x + y)
我尝试将 x 和 y 转换为 Char,但这不起作用。所以正如我所说,我可能跳过了一些东西。谁能向我解释为什么我得到一个 Char 数组而不是一个 String 行数组(就像读取文件时那样)?示例或解决方案总是受欢迎的。
提前致谢!托马斯