如何在Scala中显式传递URL

时间:2013-05-26 08:02:29

标签: scala web-crawler

您好我是Scala的新手。我试过这段代码

def web ( url : Any) {
     | val ur= new URL("url")
     | val content=fromInputStream(ur.openStream).getLines.mkString("\n")
     | print(content)
     | } 

当我传递网址(“http://contentexplore.com/iphone-6-amazing-looks/”)时 它显示错误

java.net.MalformedURLException: no protocol: url
    at java.net.URL.<init>(URL.java:585)
    at java.net.URL.<init>(URL.java:482)
    at java.net.URL.<init>(URL.java:431)
    at .web(<console>:22)
    at .<init>(<console>:23)
    at .<clinit>(<console>)
    at .<init>(<console>:11)
    at .<clinit>(<console>)
    at $print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704)
    at scala.tools.nsc.interpreter.IMain$Request$$anonfun$14.apply(IMain.scala:920)
    at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43)
    at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)
    at java.lang.Thread.run(Thread.java:722)

我的问题是如何在scala中明确传递一个url。请建议我一个想法。谢谢提前

1 个答案:

答案 0 :(得分:0)

如评论中所述,这一行是问题所在:

val ur= new URL("url")

如果您想从输入参数URL创建url,则代码应为:

val ur= new URL(url)

有了这个错误,java URL类试图解析值为String的{​​{1}},首先查找已识别的协议("url",{{1}等等...而没有找到一个,这就是你看到错误的原因。