我的应用中有一个特定的管道,必须遵循所有重定向(为了理智而言,最多50个),跨越任何域和协议(例如,它可以跟http://somewhere.com到https://somewhere.else.com),但仅限于GET请求。我的应用中没有其他管道应该这样做。
现在看来是这样的:
val pipeline = sendReceive ~> decode(Gzip) ~> decode(Deflate) ~> unmarshal[String]
如何以与主机无关的方式在管道配置中指定此内容(即不通过配置选项或HostConnectorSetup
)?
答案 0 :(得分:1)
我认为您无法创建具有定制行为的特定管道。
名为maxRetries
的重定向计数器存储在名为HttpHostConnector
的私有对象内的RequestContext中。
此信息仅来自HostConnectorSettings
所以我考虑添加更新的HostConnectorSettings
来添加自定义行为,但我担心它会在Http对象中定义。因此,没有更新此设置的选项。它们在配置选项中定义。正如你所说,你正在寻找另一种选择,但这并没有解决问题。
最后一点,我认为不可能只改变GET请求的行为。 Here您可以了解如何遵循RFC2616。
所以TLDR:根据您的配置,所有管道都将遵循重定向或不重定向,但不可能区分哪些管道将执行或不执行。