В Python 2.*
, input
позволяет пользователю ввести любое выражение, например. кортеж:
>>> a, b = input('Two numbers please (with a comma in between): ')
Two numbers please (with a comma in between): 23, 45
>>> print a, b
23 45
В Python 3.*
, input
походит на 2.*
's raw_input
, возвращая вам строку, которая только что набрала пользователь (а не eval
как 2.*
используется input
), поэтому вам нужно будет .split
и / или eval
, и c, но вы также будете БОЛЬШЕ больше контролировать все это.
Мы делаем нечто подобное с заголовками запросов здесь . У нас есть абстрактный фильтр , который правильно настраивает URI, вам просто нужно определить URI из ServerWebExchange
.
public class CookieToRequestUriGatewayFilterFactory extends
AbstractChangeRequestUriGatewayFilterFactory<AbstractGatewayFilterFactory.NameConfig> {
private final Logger log = LoggerFactory
.getLogger(RequestHeaderToRequestUriGatewayFilterFactory.class);
public RequestHeaderToRequestUriGatewayFilterFactory() {
super(NameConfig.class);
}
@Override
public List<String> shortcutFieldOrder() {
return Arrays.asList(NAME_KEY);
}
@Override
protected Optional<URI> determineRequestUri(ServerWebExchange exchange,
NameConfig config) {
String cookieValue = exchange.getRequest().getCookies().getFirst(config.getName());
String requestUrl = determineUrlFromCookie(cookieValue);
return Optional.ofNullable(requestUrl).map(url -> {
try {
return new URL(url).toURI();
}
catch (MalformedURLException | URISyntaxException e) {
log.info("Request url is invalid : url={}, error={}", requestUrl,
e.getMessage());
return null;
}
});
}
}
Это будет зависеть от вас, чтобы реализовать determineUrlFromCookie()
.