【问题标题】:How do I set a proxy server when using dispatch.Http?使用 dispatch.Http 时如何设置代理服务器?
【发布时间】:2012-02-21 15:23:52
【问题描述】:

我的代码如下所示:

  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) >|)

它可以正常工作,但现在我需要通过代理对其进行路由。我该怎么做?

【问题讨论】:

  • mmmmh 你可以进一步解释一下,因为我不清楚代理应该在游戏中的哪个位置出现。您是否想要能够直接在请求中进行 url 重写的东西?

标签: scala


【解决方案1】:

我想这更容易,毕竟它是 Java 底层,所以传递 Java 代理选项是可行的:

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

【讨论】:

  • 感谢您的提示,我在 0.11.0 上尝试过,但它不起作用。我还尝试将它们作为 JVM 参数传递,但没有成功。知道为什么会这样吗?
  • 这不应该被接受。 Dispatch 会忽略这些设置,因为它在后台使用 Netty,而 Netty 会忽略它:github.com/netty/netty/issues/1133
【解决方案2】:

您可以直接在 Dispatch 0.11 中为 Req 对象设置代理服务器,例如:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2014-03-30
    • 2017-05-21
    • 1970-01-01
    • 2012-04-06
    相关资源
    最近更新 更多