HttpClient 4 - как получить последний URL перенаправления

Поочередно:

BindingOperations.ClearBinding(txtName, TextBox.TextProperty)
50
задан lfurini 9 May 2018 в 03:04
поделиться

1 ответ

Это будет текущий URL, который вы можете получить, вызвав

  HttpGet#getURI();

EDIT: вы не упомянули, как вы делаете перенаправление. Это работает для нас, потому что мы сами обрабатываем 302.

Похоже, вы используете DefaultRedirectHandler. Мы так и делали. Получить текущий URL-адрес довольно сложно. Вам нужно использовать свой собственный контекст. Вот соответствующие фрагменты кода,

        HttpGet httpget = new HttpGet(url);
        HttpContext context = new BasicHttpContext(); 
        HttpResponse response = httpClient.execute(httpget, context); 
        if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK)
            throw new IOException(response.getStatusLine().toString());
        HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute( 
                ExecutionContext.HTTP_REQUEST);
        HttpHost currentHost = (HttpHost)  context.getAttribute( 
                ExecutionContext.HTTP_TARGET_HOST);
        String currentUrl = (currentReq.getURI().isAbsolute()) ? currentReq.getURI().toString() : (currentHost.toURI() + currentReq.getURI());

Перенаправление по умолчанию не сработало для нас, поэтому мы изменили его, но я забыл, в чем проблема.

63
ответ дан 7 November 2019 в 10:38
поделиться
Другие вопросы по тегам:

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