2012-02-21 75 views
3

我的代码看起来是这样的:如何在使用dispatch.Http时设置代理服务器?

val r = :/(srv, 80) <:< Map("Cookie" -> "Scale=Scout%20Pro") 
    implicit val http = new Http with NoLogging 
    val rBeg = r/"endSessionRedirect.do" 
    http(rBeg <<? Map("r" -> to) >|) 

它可以正常工作,但现在我需要将其路由通过代理。我怎样才能做到这一点?

+0

mmmmh你会否进一步解释,因为我不清楚代理应该进入游戏。你是否想要能够直接在Request中进行URL重写的东西? – 2012-02-21 15:30:13

回答

3

我想这是比较容易,我虽然,它是Java的下毕竟,所以通过Java代理选项的工作原理:

-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8001 
+0

感谢您的提示,我用0.11.0试过,它不起作用。我也尝试将它们作为JVM参数传递,但没有成功。任何想法为什么这可能是这种情况? – Bob 2013-07-26 22:18:54

+1

这不应该被接受。 Dispatch忽略了这些设置,因为它在底层使用Netty,Netty忽略它:https://github.com/netty/netty/issues/1133 – mirelon 2015-03-10 14:39:25

3

您可以Req对象直接调度0.11设置代理服务器像:

val r = :/(srv, 80).setProxyServer(new ProxyServer("localhost", 8000)) <:< Map("Cookie" -> "Scale=Scout%20Pro") 

根据我的测试(使用v0.11.0),Dispatch完全忽略了JVM代理选项。

相关问题