2016-04-14 15 views
0

У меня есть конкретный конвейер в моем приложении, который должен отслеживать все перенаправления (допустим, до 50 для здравомыслия), через любой домен и протокол (например, он мог следовать http://somewhere.com до https://somewhere.else.com), но только для запросов GET. Никакой другой конвейер в моем приложении не должен делать этого.Как я могу указать конкретный запрос спрей-клиентом для выполнения всех переадресаций?

Вот что он выглядит сейчас:

val pipeline = sendReceive ~> decode(Gzip) ~> decode(Deflate) ~> unmarshal[String] 

Как я могу указать это в конфигурации трубопровода в хост-агностик способом (т.е. не через опции конфигурации или HostConnectorSetup)?

ответ

1

Я не думаю, что вы сможете создать конкретный конвейер с индивидуальным поведением.

Счетчик переадресаций, называемый maxRetries, хранится в RequestContext, внутри частного объекта с именем HttpHostConnector. И эта информация приходит только от HostConnectorSettings

Так я думал о добавлении обновленного HostConnectorSettings добавлять пользовательские поведения, но я боюсь, что это определено в Http объекта. Таким образом, нет возможности обновлять эти настройки. Они определены в параметрах конфигурации. И, как вы сказали, вы искали другой вариант, это не решает проблему.

И последнее, что я не думаю, что можно изменить поведение только для запросов GET. Here вы можете увидеть, как он работает, чтобы следить за RFC2616.

Таким образом, TLDR: все трубопроводы будут следовать за перенаправлением или нет в зависимости от вашей конфигурации, но невозможно различить, какие из них будут делать или нет.

 Смежные вопросы

  • Нет связанных вопросов^_^