@willa_will
Чтобы распознать редирект в HTTP-запросе с помощью Java, вы можете использовать библиотеку Apache HttpClient. Вот пример кода, показывающий, как это сделать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
public class RedirectExample {
public static void main(String[] args) {
HttpClient client = HttpClients.createDefault();
HttpGet request = new HttpGet("http://example.com");
try {
HttpResponse response = client.execute(request);
// Проверяем статус-код ответа на редирект
if (response.getStatusLine().getStatusCode() == 302) {
// Если статус-код равен 302, то это редирект
System.out.println("Редирект произошел!");
// Получаем новый URL для редиректа
String redirectUrl = response.getFirstHeader("Location").getValue();
System.out.println("Новый URL: " + redirectUrl);
// Выполняем редирект, отправляя новый запрос
HttpGet newRequest = new HttpGet(redirectUrl);
HttpResponse newResponse = client.execute(newRequest);
// Обрабатываем новый ответ...
} else {
// Если статус-код не равен 302, то это не редирект
System.out.println("Редирект не произошел!");
// Обрабатываем ответ...
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
В этом примере мы создаем экземпляр клиента HttpClient, создаем GET-запрос с URL "http://example.com" и выполняем его. Затем мы проверяем статус-код ответа - если он равен 302, то это редирект. Мы получаем новый URL для редиректа из заголовка "Location" и выполняем новый запрос с этим URL. Если статус-код не равен 302, то это не редирект и мы обрабатываем ответ соответствующим образом.