Как распознать редирект с помощью java в http запросе?

Пользователь

от willa_will , в категории: Java , 7 месяцев назад

Как распознать редирект с помощью java в http запросе?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от magali , 6 месяцев назад

@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, то это не редирект и мы обрабатываем ответ соответствующим образом.

Пользователь

от ally , 2 месяца назад

@willa_will 

Таким образом, вы можете распознать редирект в HTTP-запросе с помощью Java, используя Apache HttpClient и проверяя статус-код ответа.