WebRequest. GetResponse запирается?

Обновление 2019 года для Начальной загрузки Spring 2 + / Spring (безопасность) 5 + / Java 8 +:

Как мое редактирование к ответ iamiddy был отклонен, я хочу также предоставить полное решение для Начальной загрузки Spring 2 + как отдельный ответ.

Эти WebMvcConfigurerAdapter удерживается от использования с Spring5 / Java8 и может быть заменен непосредственно с Интерфейсом WebMvcConfigurer окончание с:

@SpringBootApplication
public class Application extends WebMvcConfigurer {

    public static void main(String[] args) throws Exception {
        System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true");
        SpringApplication.run(Application.class, args);
    }

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        UrlPathHelper urlPathHelper = new UrlPathHelper();
        urlPathHelper.setUrlDecode(false);
        configurer.setUrlPathHelper(urlPathHelper);
    }
}

Плюс Вы также должен настроить Spring (Strict)HttpFirewall, чтобы избежать, чтобы блокирование закодированных наклонных черт с Начальной загрузкой Spring сообщения об ошибке The request was rejected because the URL contained a potentially malicious String "%2F"

@Bean
public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
    StrictHttpFirewall firewall = new StrictHttpFirewall();
    firewall.setAllowUrlEncodedSlash(true);    
    return firewall;
}

использовало вышеупомянутое HttpFirewall Боб, когда доступный - иначе могло бы быть необходимо настроить WebSecurity, как упомянуто здесь :

10
задан 6 September 2009 в 20:22
поделиться

1 ответ

Обычно это происходит, если вы сделали несколько запросов к одному и тому же хосту и не удалили WebResponse .

Настройки управления подключением по умолчанию разрешают только 2 ( или, может быть, 4, я не могу вспомнить) одновременно открывать подключения к одному и тому же хосту. Если вам действительно нужно это изменить, используйте элемент app.config - но обычно вы справитесь, просто избавившись от WebResponse :

try
{
    WebRequest myWebRequest = WebRequest.Create(strURL);
    using (WebResponse myWebResponse = myWebRequest.GetResponse())
    {
        //more code here
44
ответ дан 3 December 2019 в 13:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: