2016-03-14 4 views
2

Выполняет ли Apache HttpClient запросы GET по-разному по сравнению с java.net.HttpURLConnection?Обработка запросов GET - Apache HttpClient vs java.net.HttpURLConnection

Я попытался сделать запрос GET URL, который возвращает перенаправление, используя оба метода. В то время как код ответа от HttpURLConnection возвращает 302, как и ожидалось, что делает тот же вызов, используя HTTPClient результаты в 200

Ниже мой код:

// Using Apache HttpClient 
HttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy()).build(); 
HttpGet request = new HttpGet(authUrl); 
HttpResponse response = client.execute(request); 
int responseCode = response.getStatusLine().getStatusCode(); //Returns 200 

// Using java.net.HttpURLConnection 
URL obj = new URL(authUrl); 
HttpURLConnection conn = (HttpURLConnection) obj.openConnection(); 
int responseCode = conn.getResponseCode(); //Returns 302 

Это мой первый раз, используя Apache HttpClient, так что мой код может быть неправильным.

Спасибо.

+0

Посмотрите на заголовки для «Место» - вы можете получить редирект от этого. 'for (Заголовок заголовка: response.getHeaders (« Местоположение »)) {redirectLink = header.getValue(); } ' – Ascalonian

+0

Я пробовал это. В нем нет заголовка «Местоположение», так как ответ равен 200, а не 302. – drunkenfist

ответ

0

Попробуйте отключить автоматическую переадресацию. Скорее всего HttpClient перенаправляет на месте, указанном в 302 ответа, в то время как HUC по какой-то причине не

1

Handling GET requests - Apache HttpClient vs java.net.HttpURLConnection Если вам необходимо пройти через цепочку переадресаций, вы должны установить переадресацию отключены для HttpPost/HttpGet (HttpRequestBase), для пример:

public void disableRedirect(HttpRequestBase request) { 
    request.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build()); 
} 

После этого вы получите 302 ожидается код ответа с response.getStatusLine().getStatusCode() и может прочитать заголовки, как @Ascalonian сказал

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