Scala 是否在代理后使用dispatch 0.9.5?

Scala 是否在代理后使用dispatch 0.9.5?,scala,proxy,scala-dispatch,Scala,Proxy,Scala Dispatch,我试图(在IntelliJ IDE或sbt命令行中)从代理后面执行这个非常基本的分派代码段: 导入分派_ val svc=url(“http://api.hostip.info/country.php") val country=Http(svc>as.String) println(country()) 我只能得到一个例外: java.net.ConnectException: Connection timed out: no further information to http:

我试图(在IntelliJ IDE或sbt命令行中)从代理后面执行这个非常基本的分派代码段:

导入分派_
val svc=url(“http://api.hostip.info/country.php")
val country=Http(svc>as.String)
println(country())
我只能得到一个例外:

java.net.ConnectException: Connection timed out: no further information to
    http://api.hostip.info/country.php java.util.concurrent.ExecutionException:
       java.net.ConnectException: Connection timed out: no further information 
            to http://api.hostip.info/country.php
我尝试设置通常的vm参数,但没有得出结论:
-Dhttp.proxyHost=
\u my\u proxy\u host\u
-Dhttp.proxyPort=80
但还是有同样的例外

另一方面,以下代码段工作正常:

导入分派_
val svc=url(“http://api.hostip.info/country.php)setProxyServer(新的com.ning.http.client.ProxyServer(myproxyhost,80))
val country=Http(svc>as.String)
println(country())
因为它看起来既不美观也不鳞片,我想知道在这种情况下,这是否真的是我应该做的


欢迎任何帮助,提前谢谢

看来我的问题不是很鼓舞人心

我以我的图书馆风格在皮条客中做了一些练习:

包裹发送
包对象扩展{
导入com.ning.http.client.ProxyServer
类DefaultPoxyVerbs(override val subject:Req)扩展了ProxyVerbs
对象NoProxy扩展ProxyServer(“,0)
对象代理{
def apply(主机:字符串,端口:Int)=新代理服务器(主机,端口)
}
特质代理动词扩展了请求动词{
def通过(代理:ProxyServer)=
if(NoProxy==代理)subject else subject.setProxyServer(代理)
def | |>(代理:ProxyServer)=通过(代理)
}
隐式def implyProxyVerbs(生成器:Req)=
新的DefaultPoxyVerbs(生成器)
}
现在我可以写:

导入分派_
导入dispatch.ext_
val svc=url(“http://api.hostip.info/country.php)通过代理(“废话废话”,80)
val country=Http(svc>as.String)
println(country())
就分派api风格而言,它更令人赏心悦目、更连贯


虽然这是一个有趣的练习,但到目前为止,我仍然不知道我最初是否以我应该的方式使用api,也不知道为什么设置
http.proxyHost
http.proxyPort
属性不起作用,因为它似乎适用于

如果设置此参数,将使用http.proxyHost和http.proxyPort:

-Dcom.ning.http.client.AsyncHttpClientConfig.useProxyProperties=true
此外,还有一些参数:

-Dcom.ning.http.client.AsyncHttpClientConfig.proxy.user=user
-Dcom.ning.http.client.AsyncHttpClientConfig.proxy.password=password
-Dcom.ning.http.client.AsyncHttpClientConfig.proxy.protocol=NTLM

为什么这看起来不像scala?迪卡洛:这可能是一个毫无意义的细节,但方法的命名方案
setProxyServer
以及此后代理对象的构造方式清楚地表明它们不是用scala编写的。由于这样的努力是为了在异步http客户机上提供一个很好的scala-ish包装,所以在我看来,设置代理并不是一个很好的方法,这显然证明了我的做法是错误的。